Observability is experimental: its behavior and API may change in later releases.
Observability turns your monitoring alerts into Investigations. Splunk can send alerts to 2501, which stores them as signals. Two parts do the work:
Sentinel watches the signals. It runs on a schedule, looks for unusual patterns, and decides for each one whether it needs an Investigation or can wait.
An Investigation works on one problem. It diagnoses with read-only Jobs, fixes the cause with a remediation Job only once the evidence shows it, and checks that the fix worked with another read-only Job before it closes as resolved. When it cannot get there, it is dismissed or escalated to a person.
Splunk alert ──▶ signals │ ▼1. Detection and triage detectors flag unusual patterns ──▶ triage (llm): snooze, or open an Investigation │ ┌──────────────────────────────────────────────────────────────────────────────┘ ▼2. Investigation assess (llm) ⇄ investigate with read-only Jobs (agentic) │ ▼3. Remediation evidence review (llm) ──▶ Jobs that fix the host (agentic) │ ▼4. Resolution decide (llm): resolve, dismiss or escalate ──▶ close(llm) a model call(agentic) a Job, which an agent carries out on a host
Sentinel runs on a schedule. Its detectors look for unusual patterns, and for each one it finds, the model decides whether to open an Investigation or snooze the pattern.
1. Burst - a pattern suddenly arrives far more often than usual █ ▄ █ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ █ █2. New fingerprint - a pattern not seen recently: brand new, or back after going quiet ▄ █ ▄ █ ▂ █ █ ▂ ▄ ▂ ▂ █ █ · · · · · █ █ █ █ █ █ · · · · · · · · █ █ █ brand new back after going quiet3. Host spread - the same pattern shows up on another host host A ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃ host B · · · · · · · · · ▃ ▅ █4. Error volume - errors across the organization rise sharply █ ▅ █ ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▃ █ █ all errors, every pattern5. Untriaged severe - severe signals still have no decision ERROR █ · · · · · · · · · · · · · ▶ still waiting
An Investigation assesses what it knows, decides what to do next, and waits for the result, until it can close.
1. assess (llm) update the hypothesis, confidence and blast radius2. decide (llm) choose one: investigate start read-only Jobs, one per host ──▶ 3 remediate evidence review, then Jobs that change a host ──▶ 3 wait start nothing ──▶ 3 resolve the reported problem stopped ──▶ close dismiss the problem was not real ──▶ close escalate a person needs to look ──▶ close3. wait until a Job ends, a signal match arrives, or a recheck ──▶ back to 1
An Investigation ends in one of three ways:
Resolved - the problem stopped. This does not prove the cause.
Dismissed - the problem was not real.
Escalated - a person needs to take over. Nobody is notified; check the Investigation’s status.
An Investigation starts by diagnosing: it only runs read-only Jobs, which look at hosts without changing them. It moves on to fixing only once its evidence shows the cause with enough confidence. Even then, a separate review checks the fix against that evidence before any Job that changes a host can start, and refuses a fix the evidence does not support. Operational rules still apply to every Job.
Signals, Sentinel decisions and Investigations belong to the organization that owns the signal key the alert was sent with.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"2501.ai","colors":{"primary":"#121212","light":"#FAFAFA","dark":"#121212"},"logo":{"light":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/light.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=eeeb37b3ca386a00dde53b3e6235adce","dark":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/dark.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=4d0ac2514d479eb43fe361193d12c495","href":"/0.7/getting-started/welcome"},"favicon":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/favicon.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=884be98d09b5672f470de49ac6430f22","appearance":{"default":"light"},"background":{"color":{"light":"#FAFAFA","dark":"#121212"}},"navbar":{"links":[{"href":"mailto:hello@2501.ai","label":"Contact"},{"href":"https://github.com/2501-ai","label":"Github"},{"href":"https://2501.ai/","label":"Website"}]},"footer":{"socials":{"website":"https://www.2501.ai/","github":"https://github.com/2501-ai","linkedin":"https://www.linkedin.com/company/99099126"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"2501","hasAudioNarration":false,"actualSubdomain":"2501","customDomains":["docs.2501.ai"],"gitSource":{"type":"github","owner":"2501-ai","repo":"2501","deployBranch":"main","contentDirectory":"apps/public-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae06382dc8e261a8bb5a8cf","collectionId":"1211b02f-18ff-4e53-923a-18bdb4bcf20b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae06382dc8e261a8bb5a8cf"},"entitlements":{},"buildId":"6ae88211eb73d12669c24e86","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Reference","count":843},{"language":"default","tag":"API","count":405},{"language":"default","tag":"Configure","count":286},{"language":"default","tag":"Guides","count":180},{"language":"default","tag":"Docs","count":173},{"language":"default","tag":"Benchmark","count":165},{"language":"default","tag":"Integration","count":117},{"language":"default","tag":"Deploy","count":112},{"language":"default","tag":"Agents","count":104},{"language":"default","tag":"Concepts","count":101}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"0.19/core-concepts/observability","slug":"/0.19/core-concepts/observability","pageMetadata":{"title":"Observability","description":"Investigate monitoring alerts automatically","href":"/0.19/core-concepts/observability"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Investigate monitoring alerts automatically\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsx(_components.p,{children:`Observability is experimental: its behavior and API may change in later releases.`})}),`\n`,_jsxs(_components.p,{children:[`Observability turns your monitoring alerts into Investigations. Splunk can send alerts to 2501, which stores them as `,_jsx(_components.strong,{children:`signals`}),`. Two parts do the work:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sentinel`}),` watches the signals. It runs on a schedule, looks for unusual patterns, and decides for each one whether it needs an Investigation or can wait.`]}),`\n`,_jsxs(_components.li,{children:[`An `,_jsx(_components.strong,{children:`Investigation`}),` works on one problem. It diagnoses with read-only Jobs, fixes the cause with a remediation Job only once the evidence shows it, and checks that the fix worked with another read-only Job before it closes as resolved. When it cannot get there, it is dismissed or escalated to a person.`]}),`\n`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`18`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Splunk alert ──▶ signals`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1. Detection and triage detectors flag unusual patterns ──▶ triage (llm): snooze, or open an Investigation`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ┌──────────────────────────────────────────────────────────────────────────────┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2. Investigation assess (llm) ⇄ investigate with read-only Jobs (agentic)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`3. Remediation evidence review (llm) ──▶ Jobs that fix the host (agentic)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▼`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`4. Resolution decide (llm): resolve, dismiss or escalate ──▶ close`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`(llm) a model call`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`(agentic) a Job, which an agent carries out on a host`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`signals-and-patterns`,children:`Signals and Patterns`}),`\n`,_jsx(_components.p,{children:`Each alert becomes a signal. Signals of the same kind - the same alert rule and message, on any host - form a signal pattern.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Splunk alerts ──▶ signals, grouped by pattern and host`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` connection refused: config-svc web-1 09:00 4 signals ┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` connection refused: config-svc web-1 09:05 7 signals ├──▶ one signal pattern`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` connection refused: config-svc web-2 09:05 2 signals ┘`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`sentinel`,children:`Sentinel`}),`\n`,_jsx(_components.p,{children:`Sentinel runs on a schedule. Its detectors look for unusual patterns, and for each one it finds, the model decides whether to open an Investigation or snooze the pattern.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`28`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`28`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1. Burst - a pattern suddenly arrives far more often than usual`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▄ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ ▂ ▁ █ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2. New fingerprint - a pattern not seen recently: brand new, or back after going quiet`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▄ █ ▄ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▂ █ █ ▂ ▄ ▂ ▂ █ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` · · · · · █ █ █ █ █ █ · · · · · · · · █ █ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` brand new back after going quiet`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`3. Host spread - the same pattern shows up on another host`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` host A ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃ ▂ ▃`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` host B · · · · · · · · · ▃ ▅ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`4. Error volume - errors across the organization rise sharply`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▅ █`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▂ ▁ ▂ ▃ █ █ all errors, every pattern`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`5. Untriaged severe - severe signals still have no decision`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ERROR █ · · · · · · · · · · · · · ▶ still waiting`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`investigations`,children:`Investigations`}),`\n`,_jsx(_components.p,{children:`An Investigation assesses what it knows, decides what to do next, and waits for the result, until it can close.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`10`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1. assess (llm) update the hypothesis, confidence and blast radius`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2. decide (llm) choose one:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` investigate start read-only Jobs, one per host ──▶ 3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` remediate evidence review, then Jobs that change a host ──▶ 3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` wait start nothing ──▶ 3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` resolve the reported problem stopped ──▶ close`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` dismiss the problem was not real ──▶ close`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` escalate a person needs to look ──▶ close`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`3. wait until a Job ends, a signal match arrives, or a recheck ──▶ back to 1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`An Investigation ends in one of three ways:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Resolved`}),` - the problem stopped. This does not prove the cause.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dismissed`}),` - the problem was not real.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Escalated`}),` - a person needs to take over. Nobody is notified; check the Investigation’s status.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`fixing-problems-safely`,children:`Fixing Problems Safely`}),`\n`,_jsxs(_components.p,{children:[`An Investigation starts by diagnosing: it only runs read-only Jobs, which look at hosts without changing them. It moves on to fixing only once its evidence shows the cause with enough confidence. Even then, a separate review checks the fix against that evidence before any Job that changes a host can start, and refuses a fix the evidence does not support. `,_jsx(_components.a,{href:`/0.19/configure/operational-rules`,children:`Operational rules`}),` still apply to every Job.`]}),`\n`,_jsx(Heading,{level:`2`,id:`turning-it-on`,children:`Turning It On`}),`\n`,_jsxs(_components.p,{children:[`Observability is off by default. See `,_jsx(_components.a,{href:`/0.19/configure/webhooks#splunk-alerts`,children:`Splunk alerts`}),` to turn it on.`]}),`\n`,_jsx(Heading,{level:`2`,id:`limits`,children:`Limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Splunk is the only alert source.`}),`\n`,_jsx(_components.li,{children:`You cannot send messages to an Investigation.`}),`\n`,_jsx(_components.li,{children:`Escalation notifies nobody.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`organization-scoping`,children:`Organization Scoping`}),`\n`,_jsxs(_components.p,{children:[`Signals, Sentinel decisions and Investigations belong to the `,_jsx(_components.a,{href:`/0.19/core-concepts/organizations`,children:`organization`}),` that owns the signal key the alert was sent with.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Observability","description":"Investigate monitoring alerts automatically","href":"/0.19/core-concepts/observability"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Signals and Patterns","slug":"signals-and-patterns","depth":2,"children":[]},{"title":"Sentinel","slug":"sentinel","depth":2,"children":[]},{"title":"Investigations","slug":"investigations","depth":2,"children":[{"title":"Fixing Problems Safely","slug":"fixing-problems-safely","depth":3,"children":[]}]},{"title":"Turning It On","slug":"turning-it-on","depth":2,"children":[]},{"title":"Limits","slug":"limits","depth":2,"children":[]},{"title":"Organization Scoping","slug":"organization-scoping","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"2501","siteName":"2501.ai","title":"Observability - 2501.ai","navMaps":{"firstHrefInVersion":{"0.19":{"href":"/0.19/core-concepts/observability","matchLevel":0},"0.18":{"href":"/0.18/core-concepts/observability","matchLevel":1},"0.17":{"href":"/0.17/core-concepts/observability","matchLevel":1},"0.16":{"href":"/0.16/core-concepts/agents","matchLevel":2},"0.15":{"href":"/0.15/core-concepts/agents","matchLevel":2},"0.14":{"href":"/0.14/core-concepts/agents","matchLevel":2},"0.13":{"href":"/0.13/core-concepts/agents","matchLevel":2},"0.12":{"href":"/0.12/core-concepts/agents","matchLevel":2},"0.11":{"href":"/0.11/core-concepts/agents","matchLevel":2},"0.10":{"href":"/0.10/core-concepts/agents","matchLevel":2},"0.9":{"href":"/0.9/core-concepts/agents","matchLevel":2},"0.8":{"href":"/0.8/core-concepts/agents","matchLevel":2},"0.7":{"href":"/0.7/core-concepts/agents","matchLevel":2},"0.4":{"href":"/0.4/command-center","matchLevel":4},"0.3.0":{"href":"/0.3.0/command-center","matchLevel":4},"0.2.6":{"href":"/0.2.6/command-center","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T12:29:39.730Z","originalFileLocation":"0.19/core-concepts/observability.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Investigate monitoring alerts automatically\">\u003cmeta data-mint-head name=\"application-name\" content=\"2501.ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Observability - 2501.ai\">\u003cmeta data-mint-head property=\"og:description\" content=\"Investigate monitoring alerts automatically\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"2501.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.2501.ai/0.19/core-concepts/observability\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://2501.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Observability\u0026amp;description=Investigate+monitoring+alerts+automatically\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=047364fd17f0c472392d84e1f1405acf583248f41a16d8ba31a3d37549826a49\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Observability - 2501.ai\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Investigate monitoring alerts automatically\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://2501.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Observability\u0026amp;description=Investigate+monitoring+alerts+automatically\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=047364fd17f0c472392d84e1f1405acf583248f41a16d8ba31a3d37549826a49\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"2501.ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#121212\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.2501.ai/0.19/core-concepts/observability\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/0.19/core-concepts/observability.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.2501.ai/#organization\",\"name\":\"2501.ai\",\"url\":\"https://docs.2501.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/light.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=eeeb37b3ca386a00dde53b3e6235adce\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.2501.ai#website\",\"name\":\"2501.ai\",\"url\":\"https://docs.2501.ai\",\"publisher\":{\"@id\":\"https://docs.2501.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.2501.ai/0.19/core-concepts/observability#webpage\",\"url\":\"https://docs.2501.ai/0.19/core-concepts/observability\",\"name\":\"Observability\",\"description\":\"Investigate monitoring alerts automatically\",\"dateModified\":\"2026-11-02T12:29:39.730Z\",\"isPartOf\":{\"@id\":\"https://docs.2501.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.2501.ai/0.19/core-concepts/observability#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.2501.ai/0.19/core-concepts/observability#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Concepts\",\"item\":\"https://docs.2501.ai/0.19/core-concepts/agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Observability\",\"item\":\"https://docs.2501.ai/0.19/core-concepts/observability\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.2501.ai/0.19/core-concepts/observability#article\",\"headline\":\"Observability\",\"name\":\"Observability\",\"description\":\"Investigate monitoring alerts automatically\",\"url\":\"https://docs.2501.ai/0.19/core-concepts/observability\",\"mainEntityOfPage\":{\"@id\":\"https://docs.2501.ai/0.19/core-concepts/observability#webpage\"},\"dateModified\":\"2026-11-02T12:29:39.730Z\",\"publisher\":{\"@id\":\"https://docs.2501.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.2501.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"2501.ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"2501.ai","nav":{"global":null,"versions":[{"version":"0.19","tabs":[{"tab":"Docs","groups":[{"group":"Getting Started","pages":[{"title":"Welcome","href":"/0.19/getting-started/welcome"},{"title":"Quickstart","href":"/0.19/getting-started/quickstart"}]},{"group":"Understand 2501","pages":[{"title":"Command Center","href":"/0.19/understand/command-center"},{"title":"Engine \u0026 Agents","href":"/0.19/understand/engine-agents"},{"title":"Agentic Flow","href":"/0.19/understand/agentic-flow"},{"title":"Configuration Approaches","href":"/0.19/understand/configuration"}]},{"group":"Concepts","pages":[{"title":"Agents","href":"/0.19/core-concepts/agents"},{"title":"Hosts","href":"/0.19/core-concepts/hosts"},{"title":"Credentials","href":"/0.19/core-concepts/credentials"},{"title":"Organizations","href":"/0.19/core-concepts/organizations"},{"title":"Tickets","href":"/0.19/core-concepts/tickets"},{"title":"Tasks","href":"/0.19/core-concepts/tasks"},{"title":"Jobs","href":"/0.19/core-concepts/jobs"},{"title":"Job Schedules","href":"/0.19/core-concepts/job-schedules"},{"title":"Gateways","description":"Connect agents to external services","href":"/0.19/core-concepts/gateways"},{"title":"Observability","href":"/0.19/core-concepts/observability"}]}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/0.19/api/overview"}]},{"tab":"Benchmark","pages":[{"title":"Benchmark","href":"/0.19/benchmark/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/0.19/configure/prompting"}]}]},{"version":"0.18","pages":[{"title":"0.18","href":"/0.18/core-concepts/observability"}]},{"version":"0.17","pages":[{"title":"0.17","href":"/0.17/core-concepts/observability"}]},{"version":"0.16","pages":[{"title":"0.16","href":"/0.16/core-concepts/agents"}]},{"version":"0.15","pages":[{"title":"0.15","href":"/0.15/core-concepts/agents"}]},{"version":"0.14","pages":[{"title":"0.14","href":"/0.14/core-concepts/agents"}]},{"version":"0.13","pages":[{"title":"0.13","href":"/0.13/core-concepts/agents"}]},{"version":"0.12","pages":[{"title":"0.12","href":"/0.12/core-concepts/agents"}]},{"version":"0.11","pages":[{"title":"0.11","href":"/0.11/core-concepts/agents"}]},{"version":"0.10","pages":[{"title":"0.10","href":"/0.10/core-concepts/agents"}]},{"version":"0.9","pages":[{"title":"0.9","href":"/0.9/core-concepts/agents"}]},{"version":"0.8","pages":[{"title":"0.8","href":"/0.8/core-concepts/agents"}]},{"version":"0.7","pages":[{"title":"0.7","href":"/0.7/core-concepts/agents"}]},{"version":"0.4","pages":[{"title":"0.4","href":"/0.4/command-center"}]},{"version":"0.3.0","pages":[{"title":"0.3.0","href":"/0.3.0/command-center"}]},{"version":"0.2.6","pages":[{"title":"0.2.6","href":"/0.2.6/command-center"}]}]},"basePath":"","title":"Observability - 2501.ai","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}