Keep’s Maintenance Windows feature provides a critical mechanism for managing alert noise during scheduled maintenance periods or other planned events. By defining Maintenance Window rules, users can suppress alerts that are irrelevant during these times, ensuring that only actionable alerts reach the operations team.
In dynamic IT environments, it’s common to have periods where certain alerts are expected and should not trigger incident responses. Keep’s Maintenance Windows feature allows users to define specific rules that temporarily suppress alerts based on various conditions, such as time windows or alert attributes. This helps prevent unnecessary alert fatigue and ensures that teams can focus on critical issues.
Maintenance Window Rule Definition: Users define Maintenance Window rules specifying the conditions under which alerts should be suppressed.
Condition Specification: A CEL (Common Expression Language) query is associated with each Maintenance Window rule to define the conditions for suppression.
Time Window Configuration: Maintenance Window rules can be set for specific start and end times, or based on a relative duration.
Alert Suppression: During the active period of a Maintenance Window rule, any alerts matching the defined conditions are either suppressed and not shown in alerts feed or shown in the feed in suppressed status (this is configurable).
Suppose your team schedules a database upgrade that could trigger numerous non-critical alerts. You can create a Maintenance Window rule that suppresses alerts from the database service during the upgrade window. This ensures that your operations team isn’t overwhelmed by non-actionable alerts, allowing them to focus on more critical issues.
Maintenance Window Rules: Configurations that define when and which alerts should be suppressed based on time windows and conditions.
CEL Query: A query language used to specify the conditions under which alerts should be suppressed. For example, a CEL query might suppress alerts where the source is a specific service during a maintenance window.
Time Window: The specific start and end times or relative duration during which the Maintenance Window rule is active.
Alert Suppression: The process of ignoring alerts that match the Maintenance Window rule’s conditions during the specified time window.
In Keep, certain alert statuses are automatically ignored by Maintenance Window rules. Specifically, alerts with the statuses RESOLVED and ACKNOWLEDGED are not suppressed by Maintenance Window rules. This is intentional to ensure that resolving alerts can still be processed and appropriately close or update active incidents.
• RESOLVED Alerts: These alerts indicate that an issue has been resolved. By allowing these alerts to bypass Maintenance Window rules, Keep ensures that any active incidents related to the alert can be properly closed, maintaining the integrity of the alert lifecycle.• ACKNOWLEDGED Alerts: These alerts have been acknowledged by an operator, signaling that they are being addressed. Ignoring these alerts in Maintenance Windows ensures that operators can track the progress of incidents and take necessary actions without interference.By excluding these statuses from Maintenance Window suppression, Keep allows for the continuous and accurate management of alerts, even during Maintenance Window periods, ensuring that resolution processes are not disrupted.
Define the Maintenance Window Name and Description: Provide a name and optional description for the Maintenance Window rule to easily identify its purpose.
Specify the CEL Query: Use CEL to define the conditions under which alerts should be suppressed (e.g., source == "database").
Set the Time Window: Choose a specific start and end time, or define a relative duration for the Maintenance Window.
Enable the Rule: Decide whether the rule should be active immediately or scheduled for future use.
Plan Maintenance Windows in Advance: Schedule Maintenance Window periods in advance for known maintenance windows to prevent unnecessary alerts.
Use Specific Conditions: Define precise CEL queries to ensure only the intended alerts are suppressed.
Review and Update Maintenance Windows: Regularly review active Maintenance Window rules to ensure they are still relevant and adjust them as necessary.
An alert received inside the Maintenance Window must be inhibited and once the Maintenance Window is over, the alert must recover its previous flow.
The following actions will therefore be taken with a new alert:
When an alert is received, it will be checked against the Maintenance Window rules.
If the alert matches any Maintenance Window rule, its status will be set to Maintenance.
Workflows and Incidents handling are skipped.
Every WATCHER_LAPSED_TIME seconds, the watcher will check whether there is any active Maintenance Window for every alert with a Maintenance status.
If so, the following actions will be taken:
The alert will swap its status, and previous status.
Workflows, Incidents handling, Pusher and Presets notifications will be launched in the same way as a new alert.
2.2 What are the specific conditions to use the Recover Status Strategy?
Set MAINTENANCE_WINDOW_STRATEGY environment variable to recover_previous_status.
“Alerts will show in suppressed status” option must be set to True in the Maintenance Window rule configuration.
Enabled flag must be set to True in the Maintenance Window rule configuration.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Keep","colors":{"primary":"#FA9E34","light":"#FA9E34","dark":"#FF9F36"},"favicon":"https://mintcdn.com/keep-docs/V9QgKlxazxMQEv1i/favicon.svg?fit=max\u0026auto=format\u0026n=V9QgKlxazxMQEv1i\u0026q=85\u0026s=96514098e5e28bb0fa4f6598f84714bc","logo":{"light":"https://mintcdn.com/keep-docs/LjPasDs8HZ8u-5Qy/logo/light.png?fit=max\u0026auto=format\u0026n=LjPasDs8HZ8u-5Qy\u0026q=85\u0026s=906a0da7c13acde19b4fcc061b3ebfa2","dark":"https://mintcdn.com/keep-docs/LjPasDs8HZ8u-5Qy/logo/dark.png?fit=max\u0026auto=format\u0026n=LjPasDs8HZ8u-5Qy\u0026q=85\u0026s=20e5dff7dd3cfeccd363c3729ccd08f8"},"navbar":{"links":[{"label":"Platform","href":"https://platform.keephq.dev/"}],"primary":{"type":"github","href":"https://github.com/keephq/keep"}},"footer":{"socials":{"github":"https://github.com/keephq/keep"}},"integrations":{"posthog":{"apiKey":"phc_mYqciA4RO5g48K6KnmZtftn5xQa5625Aao7vsVC0gJ9"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"keep-docs","hasAudioNarration":false,"actualSubdomain":"keep-docs","customDomains":["docs.keephq.dev"],"gitSource":{"type":"github","owner":"keephq","repo":"keep","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeae7c6821d0792126ba2a5","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Providers","count":127},{"language":"default","tag":"Supported Providers","count":123},{"language":"default","tag":"Keep CLI","count":32},{"language":"default","tag":"Commands","count":29},{"language":"default","tag":"Deployment","count":27},{"language":"default","tag":"Workflow Automation","count":16},{"language":"default","tag":"AIOps","count":13},{"language":"default","tag":"Authentication","count":11},{"language":"default","tag":"Overview","count":11},{"language":"default","tag":"Syntax","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"overview/maintenance-windows","slug":"/overview/maintenance-windows","pageMetadata":{"title":"Maintenance Windows","description":null,"href":"/overview/maintenance-windows"},"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={code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage,Tip}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Keep’s Maintenance Windows feature provides a critical mechanism for managing alert noise during scheduled maintenance periods or other planned events. By defining Maintenance Window rules, users can suppress alerts that are irrelevant during these times, ensuring that only actionable alerts reach the operations team.`}),`\n`,_jsx(Frame,{width:`100`,height:`200`,children:_jsx(OptimizedImage,{height:`10`,src:`https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=a2a78e90b501441034311fa81bdc7153`,\"data-og-width\":`2184`,\"data-og-height\":`1427`,\"data-path\":`images/maintenance.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=280\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=9bdbf01dd6d905c730b2882c5350932e 280w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=560\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=7c9cbae8503106fcf952169707d31094 560w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=840\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=3a376d3c7d4f5eeb9af9be10e8968ef0 840w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=1100\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=d6008f653e3071ad1da254179a17d452 1100w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=1650\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=08ca54080e6533597e91c28a3b6df238 1650w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance.png?w=2500\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=2353ee695968e1060daefad3034b8cfd 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`introduction`,children:`Introduction`}),`\n`,_jsx(_components.p,{children:`In dynamic IT environments, it’s common to have periods where certain alerts are expected and should not trigger incident responses. Keep’s Maintenance Windows feature allows users to define specific rules that temporarily suppress alerts based on various conditions, such as time windows or alert attributes. This helps prevent unnecessary alert fatigue and ensures that teams can focus on critical issues.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How It Works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Maintenance Window Rule Definition`}),`: Users define Maintenance Window rules specifying the conditions under which alerts should be suppressed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Condition Specification`}),`: A CEL (Common Expression Language) query is associated with each Maintenance Window rule to define the conditions for suppression.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time Window Configuration`}),`: Maintenance Window rules can be set for specific start and end times, or based on a relative duration.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Alert Suppression`}),`: During the active period of a Maintenance Window rule, any alerts matching the defined conditions are either suppressed and `,_jsx(_components.strong,{children:`not shown in alerts feed`}),` or shown in the feed in suppressed status (`,_jsx(_components.strong,{children:`this is configurable`}),`).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`practical-example`,children:`Practical Example`}),`\n`,_jsx(_components.p,{children:`Suppose your team schedules a database upgrade that could trigger numerous non-critical alerts. You can create a Maintenance Window rule that suppresses alerts from the database service during the upgrade window. This ensures that your operations team isn’t overwhelmed by non-actionable alerts, allowing them to focus on more critical issues.`}),`\n`,_jsx(Heading,{level:`2`,id:`core-concepts`,children:`Core Concepts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Maintenance Window Rules`}),`: Configurations that define when and which alerts should be suppressed based on time windows and conditions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CEL Query`}),`: A query language used to specify the conditions under which alerts should be suppressed. For example, a CEL query might suppress alerts where the source is a specific service during a maintenance window.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Time Window`}),`: The specific start and end times or relative duration during which the Maintenance Window rule is active.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Alert Suppression`}),`: The process of ignoring alerts that match the Maintenance Window rule’s conditions during the specified time window.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`status-based-filtering-in-maintenance-windows`,children:`Status-Based Filtering in Maintenance Windows`}),`\n`,_jsx(_components.p,{children:`In Keep, certain alert statuses are automatically ignored by Maintenance Window rules. Specifically, alerts with the statuses RESOLVED and ACKNOWLEDGED are not suppressed by Maintenance Window rules. This is intentional to ensure that resolving alerts can still be processed and appropriately close or update active incidents.`}),`\n`,_jsx(Heading,{level:`3`,id:`why-are-some-statuses-ignored`,children:`Why Are Some Statuses Ignored?`}),`\n`,_jsx(_components.p,{children:`•\tRESOLVED Alerts: These alerts indicate that an issue has been resolved. By allowing these alerts to bypass Maintenance Window rules, Keep ensures that any active incidents related to the alert can be properly closed, maintaining the integrity of the alert lifecycle.`}),`\n`,_jsx(_components.p,{children:`•\tACKNOWLEDGED Alerts: These alerts have been acknowledged by an operator, signaling that they are being addressed. Ignoring these alerts in Maintenance Windows ensures that operators can track the progress of incidents and take necessary actions without interference.`}),`\n`,_jsx(_components.p,{children:`By excluding these statuses from Maintenance Window suppression, Keep allows for the continuous and accurate management of alerts, even during Maintenance Window periods, ensuring that resolution processes are not disrupted.`}),`\n`,_jsx(Heading,{level:`2`,id:`creating-a-maintenance-window-rule`,children:`Creating a Maintenance Window Rule`}),`\n`,_jsx(_components.p,{children:`To create a Maintenance Window rule:`}),`\n`,_jsx(Frame,{width:`100`,height:`200`,children:_jsx(OptimizedImage,{height:`10`,src:`https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=3793be87948e5793aa3850b05d331df4`,\"data-og-width\":`2228`,\"data-og-height\":`983`,\"data-path\":`images/maintenance-window-creation.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=280\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=a5a5ff7e659ba1c0e60287be9b9c9504 280w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=560\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=b0179a05aa343b686431d89f99978d1b 560w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=840\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=c593c51c9bb48143374b10dee8df4eae 840w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=1100\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=80a3eb0d5961620816aaeac1c77451b0 1100w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=1650\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=ed8823bc9cb83fb46e1dbe67df16011c 1650w, https://mintcdn.com/keep-docs/S6DFtL8OlXzhsodk/images/maintenance-window-creation.png?w=2500\u0026fit=max\u0026auto=format\u0026n=S6DFtL8OlXzhsodk\u0026q=85\u0026s=6399504d86f5729eb2afdd3900535213 2500w`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Define the Maintenance Window Name and Description`}),`: Provide a name and optional description for the Maintenance Window rule to easily identify its purpose.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Specify the CEL Query`}),`: Use CEL to define the conditions under which alerts should be suppressed (e.g., `,_jsx(_components.code,{children:`source == \"database\"`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Set the Time Window`}),`: Choose a specific start and end time, or define a relative duration for the Maintenance Window.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enable the Rule`}),`: Decide whether the rule should be active immediately or scheduled for future use.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Plan Maintenance Windows in Advance`}),`: Schedule Maintenance Window periods in advance for known maintenance windows to prevent unnecessary alerts.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use Specific Conditions`}),`: Define precise CEL queries to ensure only the intended alerts are suppressed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Review and Update Maintenance Windows`}),`: Regularly review active Maintenance Window rules to ensure they are still relevant and adjust them as necessary.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`strategies`,children:`Strategies`}),`\n`,_jsx(_components.p,{children:`In order to handle the alerts during Maintenance Windows, Keep provides some Strategies to handle how these alerts are treated:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-default`,children:`1. Default`}),`\n`,_jsxs(_components.p,{children:[`The default behaviour of Maintenance Windows is to `,_jsx(_components.strong,{children:`Suppressed`}),` alerts that match the defined conditions.`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-recover-status`,children:`2. Recover status`}),`\n`,_jsx(_components.p,{children:`This strategy relies on the following premise:`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`An alert received inside the Maintenance Window must be inhibited and once the Maintenance Window is over, the alert must recover its previous flow.`})}),`\n`,_jsx(_components.p,{children:`The following actions will therefore be taken with a new alert:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`When an alert is received, it will be checked against the Maintenance Window rules.`}),`\n`,_jsxs(_components.li,{children:[`If the alert matches any Maintenance Window rule, its status will be set to `,_jsx(_components.strong,{children:`Maintenance`}),`.`]}),`\n`,_jsx(_components.li,{children:`Workflows and Incidents handling are skipped.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Every WATCHER_LAPSED_TIME seconds, the watcher will check whether there is any active Maintenance Window for every alert with a Maintenance status.\nIf so, the following actions will be taken:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The alert will swap its status, and previous status.`}),`\n`,_jsx(_components.li,{children:`Workflows, Incidents handling, Pusher and Presets notifications will be launched in the same way as a new alert.`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`2-1-what-is-an-expired-maintenance-window`,children:`2.1 What is an expired Maintenance Window?`}),`\n`,_jsx(_components.p,{children:`For a maintenance window to be considered expired, the following conditions must be met:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`End Time`}),` must be earlier than the current time.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Enabled`}),` flag must be set to `,_jsx(_components.strong,{children:`False`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`2-2-what-are-the-specific-conditions-to-use-the-recover-status-strategy`,children:`2.2 What are the specific conditions to use the Recover Status Strategy?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.strong,{children:`MAINTENANCE_WINDOW_STRATEGY`}),` environment variable to `,_jsx(_components.strong,{children:`recover_previous_status`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`“Alerts will show in suppressed status” option must be set to `,_jsx(_components.strong,{children:`True`}),` in the Maintenance Window rule configuration.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enabled`}),` flag must be set to `,_jsx(_components.strong,{children:`True`}),` in the Maintenance Window rule configuration.`]}),`\n`]})]})}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":"Maintenance Windows","description":null,"href":"/overview/maintenance-windows"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Introduction","slug":"introduction","depth":2,"children":[]},{"title":"How It Works","slug":"how-it-works","depth":2,"children":[]},{"title":"Practical Example","slug":"practical-example","depth":2,"children":[]},{"title":"Core Concepts","slug":"core-concepts","depth":2,"children":[]},{"title":"Status-Based Filtering in Maintenance Windows","slug":"status-based-filtering-in-maintenance-windows","depth":2,"children":[{"title":"Why Are Some Statuses Ignored?","slug":"why-are-some-statuses-ignored","depth":3,"children":[]}]},{"title":"Creating a Maintenance Window Rule","slug":"creating-a-maintenance-window-rule","depth":2,"children":[]},{"title":"Best Practices","slug":"best-practices","depth":2,"children":[]},{"title":"Strategies","slug":"strategies","depth":2,"children":[{"title":"1. Default","slug":"1-default","depth":3,"children":[]},{"title":"2. Recover status","slug":"2-recover-status","depth":3,"children":[]},{"title":"2.1 What is an expired Maintenance Window?","slug":"2-1-what-is-an-expired-maintenance-window","depth":4,"children":[]},{"title":"2.2 What are the specific conditions to use the Recover Status Strategy?","slug":"2-2-what-are-the-specific-conditions-to-use-the-recover-status-strategy","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"keep-docs","siteName":"Keep","title":"Maintenance Windows - Keep","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T09:44:28.274Z","originalFileLocation":"overview/maintenance-windows.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=\"system\"}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=\"application-name\" content=\"Keep\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_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/keep-docs/kob5tqelqoTRa-nT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Maintenance Windows - Keep\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Keep\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.keephq.dev/overview/maintenance-windows\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://keep-docs.mintlify.site/_mintlify/api/og/v2?division=AIOps\u0026amp;title=Maintenance+Windows\u0026amp;theme=2c2ccf92b7efca2a3a554ef2\u0026amp;signature=aadba4d012d24718f2bf19780d49f195598140c1ffd545785f13cae94586da10\">\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=\"Maintenance Windows - Keep\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://keep-docs.mintlify.site/_mintlify/api/og/v2?division=AIOps\u0026amp;title=Maintenance+Windows\u0026amp;theme=2c2ccf92b7efca2a3a554ef2\u0026amp;signature=aadba4d012d24718f2bf19780d49f195598140c1ffd545785f13cae94586da10\">\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/keep-docs/kob5tqelqoTRa-nT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Keep\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FA9E34\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.keephq.dev/overview/maintenance-windows\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/overview/maintenance-windows.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.keephq.dev/#organization\",\"name\":\"Keep\",\"url\":\"https://docs.keephq.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/keep-docs/LjPasDs8HZ8u-5Qy/logo/light.png?fit=max\u0026auto=format\u0026n=LjPasDs8HZ8u-5Qy\u0026q=85\u0026s=906a0da7c13acde19b4fcc061b3ebfa2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.keephq.dev#website\",\"name\":\"Keep\",\"url\":\"https://docs.keephq.dev\",\"publisher\":{\"@id\":\"https://docs.keephq.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.keephq.dev/overview/maintenance-windows#webpage\",\"url\":\"https://docs.keephq.dev/overview/maintenance-windows\",\"name\":\"Maintenance Windows\",\"dateModified\":\"2026-11-01T09:44:28.274Z\",\"isPartOf\":{\"@id\":\"https://docs.keephq.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.keephq.dev/overview/maintenance-windows#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.keephq.dev/overview/maintenance-windows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"AIOps\",\"item\":\"https://docs.keephq.dev/overview/ai-incident-assistant\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Maintenance Windows\",\"item\":\"https://docs.keephq.dev/overview/maintenance-windows\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.keephq.dev/overview/maintenance-windows#article\",\"headline\":\"Maintenance Windows\",\"name\":\"Maintenance Windows\",\"url\":\"https://docs.keephq.dev/overview/maintenance-windows\",\"mainEntityOfPage\":{\"@id\":\"https://docs.keephq.dev/overview/maintenance-windows#webpage\"},\"dateModified\":\"2026-11-01T09:44:28.274Z\",\"publisher\":{\"@id\":\"https://docs.keephq.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.keephq.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Keep\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Keep","nav":{"global":null,"groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/overview/introduction"},{"title":"Playground","href":"/overview/playground"},{"title":"Use Cases","href":"/overview/usecases"},{"group":"Key Concepts","pages":[{"title":"Glossary","href":"/overview/glossary"},{"title":"Common Expression Language (CEL)","href":"/overview/cel"},{"title":"Fingerprints","sidebarTitle":"Fingerprints","href":"/overview/fingerprints"},{"title":"Alerts Severity and Status","href":"/overview/alertseverityandstatus"},{"title":"Push vs Pull alerts","href":"/overview/howdoeskeepgetmyalerts"},{"title":"Comparison","href":"/overview/comparisons"}]},{"title":"Support","sidebarTitle":"Support","href":"/overview/support"},{"title":"FAQ","sidebarTitle":"FAQ","href":"/overview/faq"}]},{"group":"AIOps","pages":[{"group":"AI","pages":[{"title":"AI Incident Assistant","href":"/overview/ai-incident-assistant"},{"title":"AI Workflow Builder Assistant","href":"/overview/ai-workflow-assistant"},{"title":"AI Semi Automatic Correlation","href":"/overview/ai-semi-automatic-correlation"},{"title":"AI in Workflows","href":"/overview/ai-in-workflows"},{"title":"AI Correlation","href":"/overview/ai-correlation"}]},{"group":"Non-AI Correlation","pages":[{"title":"Manual Correlation Rules","href":"/overview/correlation-rules"},{"title":"Topology Correlation","href":"/overview/correlation-topology"}]},{"title":"Deduplication","href":"/overview/deduplication"},{"title":"Extraction","href":"/overview/enrichment/extraction"},{"title":"Mapping","description":null,"href":"/overview/enrichment/mapping"},{"title":"Maintenance Windows","href":"/overview/maintenance-windows"},{"title":"Service Topology","description":null,"href":"/overview/servicetopology"},{"title":"Workflows","href":"/overview/workflow-automation"}]},{"group":"Alerts","pages":[{"title":"Overview","href":"/alerts/overview"},{"title":"Alert Table","href":"/alerts/table"},{"title":"Action Menu","href":"/alerts/actionmenu"},{"title":"Alert Sidebar","href":"/alerts/sidebar"},{"title":"Customized Presets","href":"/alerts/presets"},{"title":"Sound Notifications","href":"/alerts/sound"}]},{"group":"Incidents","pages":[{"title":"Overview","href":"/incidents/overview"},{"title":null,"href":"/incidents/facets"}]},{"group":"Workflow Automation","pages":[{"title":"Overview","href":"/workflows/overview"},{"group":"Syntax","pages":[{"title":"Triggers","href":"/workflows/syntax/triggers"},{"title":"Permissions","href":"/workflows/syntax/permissions"},{"title":"Steps and Actions","href":"/workflows/syntax/steps-and-actions"},{"title":"Conditions","href":"/workflows/syntax/conditions"},{"title":"Functions","href":"/workflows/syntax/functions"},{"title":"Context","href":"/workflows/syntax/context"},{"title":"Providers","href":"/workflows/syntax/providers"},{"title":"Foreach","href":"/workflows/syntax/foreach"},{"title":"Enrichment","href":"/workflows/syntax/enrichment"}]},{"group":"Examples","pages":[{"title":"Suppressing Alerts Automatically","href":"/workflows/examples/autosupress"},{"title":"Executing Actions During Business Hours","href":"/workflows/examples/buisnesshours"},{"title":"Continue on Error","href":"/workflows/examples/continue-on-error"},{"title":"Creating ServiceNow Tickets for Alerts","href":"/workflows/examples/create-servicenow-tickets"},{"title":"Handling High-Severity Sentry Alerts","href":"/workflows/examples/highsev"},{"title":"Update ServiceNow Tickets","href":"/workflows/examples/update-servicenow-tickets"}]}]},{"group":"Alert Evaluation Engine","pages":[{"title":"Overview","href":"/alertevaluation/overview"},{"group":"Examples","pages":[{"title":"VictoriaMetrics Single Alert Example","href":"/alertevaluation/examples/victoriametricssingle"},{"title":"VictoriaMetrics Multi Alert Example","href":"/alertevaluation/examples/victoriametricsmulti"}]}]},{"group":"Providers","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/providers/overview"},{"title":"Linked providers","href":"/providers/linked-providers"},{"title":"Provider methods","sidebarTitle":"Provider Methods","href":"/providers/provider-methods"},{"group":"Supported Providers","pages":[{"title":"Airflow","sidebarTitle":"Airflow Provider","href":"/providers/documentation/airflow-provider"},{"title":"Azure AKS","href":"/providers/documentation/aks-provider"},{"title":"AmazonSQS Provider","sidebarTitle":"AmazonSQS Provider","href":"/providers/documentation/amazonsqs-provider"},{"title":"Anthropic Provider","href":"/providers/documentation/anthropic-provider"},{"title":"AppDynamics","sidebarTitle":"AppDynamics Provider","href":"/providers/documentation/appdynamics-provider"},{"title":"Asana","sidebarTitle":"Asana Provider","href":"/providers/documentation/asana-provider"},{"title":"AWS S3","sidebarTitle":"AWS S3 Provider","href":"/providers/documentation/s3-provider"},{"title":"ArgoCD Provider","sidebarTitle":"ArgoCD Provider","href":"/providers/documentation/argocd-provider"},{"title":"Auth0","sidebarTitle":"Auth0 Provider","href":"/providers/documentation/auth0-provider"},{"title":"Axiom Provider","href":"/providers/documentation/axiom-provider"},{"title":"Azure Monitor","sidebarTitle":"Azure Monitor Provider","href":"/providers/documentation/azuremonitoring-provider"},{"title":"Bash","sidebarTitle":"Bash Provider","href":"/providers/documentation/bash-provider"},{"title":"BigQuery","sidebarTitle":"BigQuery Provider","href":"/providers/documentation/bigquery-provider"},{"title":"Centreon","sidebarTitle":"Centreon Provider","href":"/providers/documentation/centreon-provider"},{"title":"Checkmk","sidebarTitle":"Checkmk Provider","href":"/providers/documentation/checkmk-provider"},{"title":"Checkly","sidebarTitle":"Checkly Provider","href":"/providers/documentation/checkly-provider"},{"title":"Cilium","sidebarTitle":"Cilium Provider","href":"/providers/documentation/cilium-provider"},{"title":"ClickHouse","sidebarTitle":"ClickHouse Provider","href":"/providers/documentation/clickhouse-provider"},{"title":"CloudWatch","sidebarTitle":"CloudWatch Provider","href":"/providers/documentation/cloudwatch-provider"},{"title":"Console","sidebarTitle":"Console Provider","href":"/providers/documentation/console-provider"},{"title":"Coralogix","sidebarTitle":"Coralogix Provider","href":"/providers/documentation/coralogix-provider"},{"title":"Dash0","sidebarTitle":"Dash0 Provider","href":"/providers/documentation/dash0-provider"},{"title":"Databend","sidebarTitle":"Databend Provider","href":"/providers/documentation/databend-provider"},{"title":"Datadog","sidebarTitle":"Datadog Provider","href":"/providers/documentation/datadog-provider"},{"title":"DeepSeek Provider","href":"/providers/documentation/deepseek-provider"},{"title":"Discord","sidebarTitle":"Discord Provider","href":"/providers/documentation/discord-provider"},{"title":"Dynatrace","sidebarTitle":"Dynatrace Provider","href":"/providers/documentation/dynatrace-provider"},{"title":"EKS Provider","href":"/providers/documentation/eks-provider"},{"title":"Elastic","sidebarTitle":"Elastic Provider","href":"/providers/documentation/elastic-provider"},{"title":"Flashduty","sidebarTitle":"Flashduty Provider","href":"/providers/documentation/flashduty-provider"},{"title":"Flux CD","sidebarTitle":"Flux CD Provider","href":"/providers/documentation/fluxcd-provider"},{"title":"GCP Monitoring","sidebarTitle":"GCP Monitoring Provider","href":"/providers/documentation/gcpmonitoring-provider"},{"title":"Gemini Provider","href":"/providers/documentation/gemini-provider"},{"title":"GitHub","sidebarTitle":"GitHub Provider","href":"/providers/documentation/github-provider"},{"title":"Github Workflows","sidebarTitle":"Github Workflows Provider","href":"/providers/documentation/github_workflows_provider"},{"title":"GitLab Provider","sidebarTitle":"GitLab Provider","href":"/providers/documentation/gitlab-provider"},{"title":"GitLab Pipelines","sidebarTitle":"GitLab Pipelines Provider","href":"/providers/documentation/gitlabpipelines-provider"},{"title":"Google Kubernetes Engine","sidebarTitle":"Google Kubernetes Engine Provider","href":"/providers/documentation/gke-provider"},{"title":"Google Chat","sidebarTitle":"Google Chat Provider","href":"/providers/documentation/google_chat-provider"},{"title":"Grafana Provider","href":"/providers/documentation/grafana-provider"},{"title":"Grafana Incident Provider","sidebarTitle":"Grafana Incident Provider","href":"/providers/documentation/grafana_incident-provider"},{"title":"Grafana Loki","sidebarTitle":"Grafana Loki Provider","href":"/providers/documentation/grafana_loki-provider"},{"title":"Grafana OnCall Provider","href":"/providers/documentation/grafana_oncall-provider"},{"title":"Graylog Provider","sidebarTitle":"Graylog Provider","href":"/providers/documentation/graylog-provider"},{"title":"Grok Provider","href":"/providers/documentation/grok-provider"},{"title":"HTTP Provider","href":"/providers/documentation/http-provider"},{"title":"Icinga2 Provider","sidebarTitle":"Icinga2","href":"/providers/documentation/icinga2-provider"},{"title":"ilert Provider","sidebarTitle":"ilert Provider","href":"/providers/documentation/ilert-provider"},{"title":"Incident.io Provider","sidebarTitle":"Incident.io Provider","href":"/providers/documentation/incidentio-provider"},{"title":"Incident Manager Provider","sidebarTitle":"Incident Manager Provider","href":"/providers/documentation/incidentmanager-provider"},{"title":"Jira On-Prem Provider","sidebarTitle":"Jira On-Prem Provider","href":"/providers/documentation/jira-on-prem-provider"},{"title":"Jira Cloud Provider","sidebarTitle":"Jira Cloud Provider","href":"/providers/documentation/jira-provider"},{"title":"Kafka","sidebarTitle":"Kafka Provider","href":"/providers/documentation/kafka-provider"},{"title":"Keep","sidebarTitle":"Keep Provider","href":"/providers/documentation/keep-provider"},{"title":"Kibana","sidebarTitle":"Kibana Provider","href":"/providers/documentation/kibana-provider"},{"title":"Kubernetes","href":"/providers/documentation/kubernetes-provider"},{"title":"LibreNMS","sidebarTitle":"LibreNMS Provider","href":"/providers/documentation/libre_nms-provider"},{"title":"Linear Provider","sidebarTitle":"Linear Provider","href":"/providers/documentation/linear_provider"},{"title":"LinearB","sidebarTitle":"LinearB Provider","href":"/providers/documentation/linearb-provider"},{"title":"LiteLLM Provider","href":"/providers/documentation/litellm-provider"},{"title":"Llama.cpp Provider","href":"/providers/documentation/llamacpp-provider"},{"title":"Mailgun Provider","href":"/providers/documentation/mailgun-provider"},{"title":"Mattermost Provider","sidebarTitle":"Mattermost Provider","href":"/providers/documentation/mattermost-provider"},{"title":"Mock","sidebarTitle":"Mock Provider","href":"/providers/documentation/mock-provider"},{"title":"Monday","href":"/providers/documentation/monday-provider"},{"title":"MongoDB","sidebarTitle":"MongoDB Provider","href":"/providers/documentation/mongodb-provider"},{"title":"MySQL","sidebarTitle":"MySQL Provider","href":"/providers/documentation/mysql-provider"},{"title":"NetBox","sidebarTitle":"NetBox Provider","href":"/providers/documentation/netbox-provider"},{"title":"Netdata","sidebarTitle":"Netdata Provider","href":"/providers/documentation/netdata-provider"},{"title":"New Relic","sidebarTitle":"New Relic Provider","href":"/providers/documentation/new-relic-provider"},{"title":"Ntfy.sh","sidebarTitle":"Ntfy.sh Provider","href":"/providers/documentation/ntfy-provider"},{"title":"Ollama Provider","href":"/providers/documentation/ollama-provider"},{"title":"OpenAI Provider","href":"/providers/documentation/openai-provider"},{"title":"OpenObserve","sidebarTitle":"OpenObserve Provider","href":"/providers/documentation/openobserve-provider"},{"title":"OpenSearch Serverless","sidebarTitle":"OpenSearchServerless Provider","href":"/providers/documentation/opensearchserverless-provider"},{"title":"Openshift","href":"/providers/documentation/openshift-provider"},{"title":"Opsgenie Provider","href":"/providers/documentation/opsgenie-provider"},{"title":"PagerDuty Provider","href":"/providers/documentation/pagerduty-provider"},{"title":"Pagertree Provider","href":"/providers/documentation/pagertree-provider"},{"title":"Parseable","sidebarTitle":"Parseable Provider","href":"/providers/documentation/parseable-provider"},{"title":"Pingdom","sidebarTitle":"Pingdom Provider","href":"/providers/documentation/pingdom-provider"},{"title":"PostHog","sidebarTitle":"PostHog Provider","href":"/providers/documentation/posthog-provider"},{"title":"Microsoft Planner Provider","href":"/providers/documentation/planner-provider"},{"title":"PostgreSQL","sidebarTitle":"PostgreSQL Provider","href":"/providers/documentation/postgresql-provider"},{"title":"Prometheus","sidebarTitle":"Prometheus Provider","href":"/providers/documentation/prometheus-provider"},{"title":"Pushover","sidebarTitle":"Pushover Provider","href":"/providers/documentation/pushover-provider"},{"title":"Python","sidebarTitle":"Python Provider","href":"/providers/documentation/python-provider"},{"title":"QuickChart Provider","sidebarTitle":"QuickChart Provider","href":"/providers/documentation/quickchart-provider"},{"title":"Redmine","sidebarTitle":"Redmine Provider","href":"/providers/documentation/redmine-provider"},{"title":"Resend","sidebarTitle":"Resend Provider","href":"/providers/documentation/resend-provider"},{"title":"Rollbar","sidebarTitle":"Rollbar Provider","href":"/providers/documentation/rollbar-provider"},{"title":"SendGrid","sidebarTitle":"SendGrid Provider","href":"/providers/documentation/sendgrid-provider"},{"title":"Sentry","sidebarTitle":"Sentry Provider","href":"/providers/documentation/sentry-provider"},{"title":"Service Now","sidebarTitle":"Service Now Provider","href":"/providers/documentation/service-now-provider"},{"title":"SignalFX","sidebarTitle":"SignalFX Provider","href":"/providers/documentation/signalfx-provider"},{"title":"SIGNL4 Provider","href":"/providers/documentation/signl4-provider"},{"title":"Site24x7 Provider","href":"/providers/documentation/site24x7-provider"},{"title":"Keep's integration for Slack","sidebarTitle":"Integration for Slack","href":"/providers/documentation/slack-provider"},{"title":"SMTP","sidebarTitle":"SMTP Provider","href":"/providers/documentation/smtp-provider"},{"title":"Snowflake","sidebarTitle":"Snowflake Provider","href":"/providers/documentation/snowflake-provider"},{"title":"Splunk","sidebarTitle":"Splunk Provider","href":"/providers/documentation/splunk-provider"},{"title":"Squadcast Provider","sidebarTitle":"Squadcast Provider","href":"/providers/documentation/squadcast-provider"},{"title":"SSH","sidebarTitle":"SSH Provider","href":"/providers/documentation/ssh-provider"},{"title":"StatusCake","sidebarTitle":"StatusCake Provider","href":"/providers/documentation/statuscake-provider"},{"title":"SumoLogic Provider","sidebarTitle":"SumoLogic Provider","href":"/providers/documentation/sumologic-provider"},{"title":"Microsoft Teams Provider","sidebarTitle":"Microsoft Teams Provider","href":"/providers/documentation/teams-provider"},{"title":"Telegram Provider","href":"/providers/documentation/telegram-provider"},{"title":"Template","href":"/providers/documentation/template"},{"title":"ThousandEyes","sidebarTitle":"ThousandEyes Provider","href":"/providers/documentation/thousandeyes-provider"},{"title":"Trello","sidebarTitle":"Trello Provider","href":"/providers/documentation/trello-provider"},{"title":"Twilio Provider","href":"/providers/documentation/twilio-provider"},{"title":"UptimeKuma","sidebarTitle":"UptimeKuma Provider","href":"/providers/documentation/uptimekuma-provider"},{"title":"VictoriaLogs","sidebarTitle":"VictoriaLogs Provider","href":"/providers/documentation/victorialogs-provider"},{"title":"Victoriametrics Provider","sidebarTitle":"Victoriametrics Provider","href":"/providers/documentation/victoriametrics-provider"},{"title":"vLLM Provider","href":"/providers/documentation/vllm-provider"},{"title":"Wazuh","sidebarTitle":"Wazuh Provider","href":"/providers/documentation/wazuh-provider"},{"title":"Webhook","sidebarTitle":"Webhook Provider","href":"/providers/documentation/webhook-provider"},{"title":"Websocket","href":"/providers/documentation/websocket-provider"},{"title":"YouTrack","sidebarTitle":"YouTrack Provider","href":"/providers/documentation/youtrack-provider"},{"title":"Zabbix","sidebarTitle":"Zabbix Provider","href":"/providers/documentation/zabbix-provider"},{"title":"Zenduty","sidebarTitle":"Zenduty Provider","href":"/providers/documentation/zenduty-provider"},{"title":"Zoom","sidebarTitle":"Zoom Provider","href":"/providers/documentation/zoom-provider"},{"title":"Zoom Chat","sidebarTitle":"Zoom Chat Provider","href":"/providers/documentation/zoom_chat-provider"}]},{"title":"Adding a new Provider","sidebarTitle":"Adding a New Provider","href":"/providers/adding-a-new-provider"}]},{"group":"Deployment","pages":[{"title":"Configuration","sidebarTitle":"Configuration","href":"/deployment/configuration"},{"title":"Monitoring","sidebarTitle":"Monitoring","href":"/deployment/monitoring"},{"group":"Authentication","pages":[{"title":"Overview","href":"/deployment/authentication/overview"},{"title":"No Authentication","href":"/deployment/authentication/no-auth"},{"title":"DB Authentication","href":"/deployment/authentication/db-auth"},{"title":"Auth0 Authentication","href":"/deployment/authentication/auth0-auth"},{"title":"Azure AD Authentication","href":"/deployment/authentication/azuread-auth"},{"title":"Keycloak Authentication","href":"/deployment/authentication/keycloak-auth"},{"title":"OAuth2Proxy Authentication","href":"/deployment/authentication/oauth2proxy-auth"},{"title":"Example: OAuth2‑Proxy + Keep + GitLab SSO","href":"/deployment/authentication/oauth2-proxy-gitlab"},{"title":"Okta Authentication","href":"/deployment/authentication/okta-auth"},{"title":"OneLogin Authentication","href":"/deployment/authentication/onelogin-auth"},{"title":"Generic OIDC Authentication","href":"/deployment/authentication/oidc-auth"}]},{"group":"Provision","pages":[{"title":"Overview","href":"/deployment/provision/overview"},{"title":"Providers Provisioning","href":"/deployment/provision/provider"},{"title":"Workflow Provisioning","href":"/deployment/provision/workflow"},{"title":"Dashboard Provisioning","href":"/deployment/provision/dashboard"},{"title":"Mapping Rule Provisioning","href":"/deployment/provision/mapping"}]},{"title":"Secret Store","sidebarTitle":"Secret Store","href":"/deployment/secret-store"},{"group":"Deploy On","pages":[{"title":"Docker","sidebarTitle":"Docker","href":"/deployment/docker"},{"group":"Kubernetes","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/deployment/kubernetes/overview"},{"title":"Installation","sidebarTitle":"Installation","href":"/deployment/kubernetes/installation"},{"title":"Architecture","sidebarTitle":"Architecture","href":"/deployment/kubernetes/architecture"},{"title":"Openshift","sidebarTitle":"Openshift","href":"/deployment/kubernetes/openshift"}]},{"title":"AWS ECS","sidebarTitle":"AWS ECS","href":"/deployment/ecs"}]},{"group":"Local LLM","pages":[{"title":"Running Keep with LiteLLM","href":"/deployment/local-llm/keep-with-litellm"}]},{"title":null,"sidebarTitle":"Specifications","href":"/deployment/stress-testing"}]},{"group":"Development","pages":[{"title":"Getting started","sidebarTitle":"Getting started","href":"/development/getting-started"},{"title":"Keep with an external URL","sidebarTitle":"Keep with an external URL","href":"/development/external-url"}]},{"group":"Keep CLI","pages":[{"title":"Overview","href":"/cli/overview"},{"title":"Installation","href":"/cli/installation"},{"title":"Sync Keep Workflows With Github Action","href":"/cli/github-actions"},{"group":"Commands","pages":[{"group":"keep alert","pages":[{"title":null,"href":"/cli/commands/cli-alert"},{"sidebarTitle":"keep alert enrich","title":null,"href":"/cli/commands/alert-enrich"},{"sidebarTitle":"keep alert get","title":null,"href":"/cli/commands/alert-get"},{"sidebarTitle":"keep alert list","title":null,"href":"/cli/commands/alert-list"}]},{"group":"keep provider","pages":[{"title":null,"href":"/cli/commands/cli-provider"},{"sidebarTitle":"keep provider connect","title":null,"href":"/cli/commands/provider-connect"},{"sidebarTitle":"keep provider delete","title":null,"href":"/cli/commands/provider-delete"},{"sidebarTitle":"keep provider list","title":null,"href":"/cli/commands/provider-list"}]},{"group":"keep workflow","pages":[{"title":null,"href":"/cli/commands/cli-workflow"},{"sidebarTitle":"keep workflow apply","title":null,"href":"/cli/commands/workflow-apply"},{"sidebarTitle":"keep workflow list","title":null,"href":"/cli/commands/workflow-list"},{"sidebarTitle":"keep workflow run","title":null,"href":"/cli/commands/workflow-run"},{"sidebarTitle":"keep workflow runs","title":null,"href":"/cli/commands/workflow-runs"},{"group":"keep workflow runs","pages":[{"sidebarTitle":"keep workflow runs logs","title":null,"href":"/cli/commands/runs-logs"},{"sidebarTitle":"keep workflow runs list","title":null,"href":"/cli/commands/runs-list"}]}]},{"group":"keep mappings","pages":[{"sidebarTitle":"keep mappings list","title":null,"href":"/cli/commands/mappings-list"},{"sidebarTitle":"keep mappings create","title":null,"href":"/cli/commands/mappings-create"},{"sidebarTitle":"keep mappings delete","title":null,"href":"/cli/commands/mappings-delete"}]},{"group":"keep extractions","pages":[{"sidebarTitle":"keep extraction create","title":null,"href":"/cli/commands/extraction-create"},{"sidebarTitle":"keep extraction delete","title":null,"href":"/cli/commands/extraction-delete"},{"sidebarTitle":"keep extraction list","title":null,"href":"/cli/commands/extractions-list"}]},{"title":null,"href":"/cli/commands/cli"},{"title":"api","sidebarTitle":"keep api","href":"/cli/commands/cli-api"},{"sidebarTitle":"keep config new","title":null,"href":"/cli/commands/cli-config-new"},{"sidebarTitle":"keep config show","title":null,"href":"/cli/commands/cli-config-show"},{"title":"run","sidebarTitle":"keep run","href":"/cli/commands/cli-run"},{"title":"config","sidebarTitle":"keep config","href":"/cli/commands/cli-config"},{"title":"version","sidebarTitle":"keep version","href":"/cli/commands/cli-version"},{"title":"whoami","sidebarTitle":"keep whoami","href":"/cli/commands/cli-whoami"}]}]}]},"basePath":"","title":"Maintenance Windows - Keep","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-CXMGc493.js","DynamicMarkdown-D-2HDKEp.js","zoom-image-lightbox-CE4cYsJE.js","lightbox-handle-r17bVUz3.js"]}