{"id":13477122,"url":"https://github.com/keephq/keep","last_synced_at":"2025-05-13T18:05:02.111Z","repository":{"id":65921582,"uuid":"597502256","full_name":"keephq/keep","owner":"keephq","description":"The open-source AIOps and alert management platform","archived":false,"fork":false,"pushed_at":"2025-05-13T16:27:06.000Z","size":81431,"stargazers_count":10139,"open_issues_count":285,"forks_count":964,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-05-13T17:36:05.450Z","etag":null,"topics":["aiops","alarm","alarms","alerting","alerts","monitoring","monitoring-tool","python","python3","workflow-automation"],"latest_commit_sha":null,"homepage":"https://keephq.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keephq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-04T18:43:27.000Z","updated_at":"2025-05-13T14:39:47.000Z","dependencies_parsed_at":"2023-09-23T19:51:58.214Z","dependency_job_id":"8338e32f-f28e-4867-9030-287a78899790","html_url":"https://github.com/keephq/keep","commit_stats":null,"previous_names":[],"tags_count":251,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keephq%2Fkeep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keephq%2Fkeep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keephq%2Fkeep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keephq%2Fkeep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keephq","download_url":"https://codeload.github.com/keephq/keep/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000824,"owners_count":21997441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiops","alarm","alarms","alerting","alerts","monitoring","monitoring-tool","python","python3","workflow-automation"],"created_at":"2024-07-31T16:01:38.492Z","updated_at":"2025-05-13T18:04:57.094Z","avatar_url":"https://github.com/keephq.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"/assets/keep.png?raw=true\" width=\"86\"\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eThe open-source AIOps and alert management platform\u003c/h1\u003e\n\n\u003c/br\u003e\n\n\u003cdiv align=\"center\"\u003eSingle pane of glass, alert deduplication, enrichment, filtering and correlation, bi-directional integrations, workflows, dashboards.\n\u003c/br\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href='http://makeapullrequest.com'\u003e\n      \u003cimg alt='PRs Welcome' src='https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=shields'/\u003e\u003c/a\u003e\n    \u003ca href=\"https://slack.keephq.dev\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Join-important.svg?color=4A154B\u0026label=Slack\u0026logo=slack\u0026labelColor=334155\u0026logoColor=f5f5f5\" alt=\"Join Slack\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/keephq/keep/commits/main\"\u003e\n      \u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/m/keephq/keep\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/keephq/keep\" \u003e\n        \u003cimg src=\"https://codecov.io/gh/keephq/keep/branch/main/graph/badge.svg?token=2VT6XYMRGS\"/\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://docs.keephq.dev\"\u003eDocs\u003c/a\u003e\n    ·\n    \u003ca href=\"https://platform.keephq.dev\"\u003eTry it out\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/keephq/keep/issues/new?assignees=\u0026labels=bug\u0026template=bug_report.md\u0026title=\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://www.keephq.dev/meet-keep\"\u003eBook a Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://www.keephq.dev\"\u003eWebsite\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv style=\"width: 100%; max-width: 800px; margin: 0 auto;\"\u003e\n    \u003cimg\n        src=\"/assets/sneaknew.png?raw=true\"\n        style=\"width: 100%; height: auto; object-fit: contain;\"\n        alt=\"Sneak preview screenshot\"\n    \u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\u003c/h1\u003e\n\n- 🔍 **Single pane of glass** - Best-in-class customizable UI for all your alerts and incidents\n- 🛠️ **Swiss Army Knife for alerts** - Deduplication, correlation, filtering and enrichment\n- 🔄 **Deep integrations** - Bi-directional syncs with monitoring tools, customizable workflows\n- ⚡ **[Automation](#workflows)** - GitHub Actions for your monitoring tools\n- 🤖 **AIOps 2.0** - AI-powered correlation and summarization\n\n\u003c/br\u003e\n\n\u003e See full [platform documentation](https://docs.keephq.dev).\n\n\u003c/br\u003e\n\n## Supported Integrations\n\n\u003e View the full list in our [documentation](https://docs.keephq.dev/providers/documentation)\n\n\u003e Missing a provider? [Submit a new provider request](https://github.com/keephq/keep/issues/new?assignees=\u0026labels=provider\u0026projects=\u0026template=new_provider_request.md\u0026title=) and we'll add it quickly!\n\n### AI Backends for Enrichments, Correlations and Incident Context Gathering\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/anthropic-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/anthropic-icon.png\" alt=\"Anthropic\"/\u003e\u003cbr/\u003e\n            Anthropic\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/openai-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/openai-icon.png\" alt=\"OpenAI\"/\u003e\u003cbr/\u003e\n            OpenAI\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/deepseek-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/deepseek-icon.png\" alt=\"DeepSeek\"/\u003e\u003cbr/\u003e\n            DeepSeek\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/ollama-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/ollama-icon.png\" alt=\"Ollama\"/\u003e\u003cbr/\u003e\n            Ollama\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/llamacpp-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/llamacpp-icon.png\" alt=\"LlamaCPP\"/\u003e\u003cbr/\u003e\n            LlamaCPP\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/grok-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/grok-icon.png\" alt=\"Grok\"/\u003e\u003cbr/\u003e\n            Grok\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/gemini-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/gemini-icon.png\" alt=\"Gemini\"/\u003e\u003cbr/\u003e\n            Gemini\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Observability Tools\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/appdynamics-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/appdynamics-icon.png\" alt=\"AppDynamics\"/\u003e\u003cbr/\u003e\n            AppDynamics\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/axiom-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/axiom-icon.png\" alt=\"Axiom\"/\u003e\u003cbr/\u003e\n            Axiom\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/azuremonitoring-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/azuremonitoring-icon.png\" alt=\"Azure Monitoring\"/\u003e\u003cbr/\u003e\n            Azure Monitoring\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/centreon-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/centreon-icon.png\" alt=\"Centreon\"/\u003e\u003cbr/\u003e\n            Centreon\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/checkmk-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/checkmk-icon.png\" alt=\"Checkmk\"/\u003e\u003cbr/\u003e\n            Checkmk\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/cilium-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/cilium-icon.png\" alt=\"Cilium\"/\u003e\u003cbr/\u003e\n            Cilium\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/checkly-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/checkly-icon.png\" alt=\"Checkly\"/\u003e\u003cbr/\u003e\n            Checkly\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/cloudwatch-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/cloudwatch-icon.png\" alt=\"CloudWatch\"/\u003e\u003cbr/\u003e\n            CloudWatch\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/coralogix-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/coralogix-icon.png\" alt=\"Coralogix\"/\u003e\u003cbr/\u003e\n            Coralogix\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/dash0-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/dash0-icon.png\" alt=\"Dash0\"/\u003e\u003cbr/\u003e\n            Dash0\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/datadog-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/datadog-icon.png\" alt=\"Datadog\"/\u003e\u003cbr/\u003e\n            Datadog\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/dynatrace-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/dynatrace-icon.png\" alt=\"Dynatrace\"/\u003e\u003cbr/\u003e\n            Dynatrace\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/elastic-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/elastic-icon.png\" alt=\"Elastic\"/\u003e\u003cbr/\u003e\n            Elastic\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/gcpmonitoring-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/gcpmonitoring-icon.png\" alt=\"GCP Monitoring\"/\u003e\u003cbr/\u003e\n            GCP Monitoring\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/grafana-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/grafana-icon.png\" alt=\"Grafana\"/\u003e\u003cbr/\u003e\n            Grafana\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/grafana_loki-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/grafana_loki-icon.png\" alt=\"Grafana Loki\"/\u003e\u003cbr/\u003e\n            Grafana Loki\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/graylog-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/graylog-icon.png\" alt=\"Graylog\"/\u003e\u003cbr/\u003e\n            Graylog\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/kibana-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/kibana-icon.png\" alt=\"Kibana\"/\u003e\u003cbr/\u003e\n            Kibana\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/libre_nms-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/libre_nms-icon.png\" alt=\"LibreNMS\"/\u003e\u003cbr/\u003e\n            LibreNMS\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/netbox-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/netbox-icon.png\" alt=\"NetBox\"/\u003e\u003cbr/\u003e\n            NetBox\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/netdata-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/netdata-icon.png\" alt=\"Netdata\"/\u003e\u003cbr/\u003e\n            Netdata\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/new-relic-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/newrelic-icon.png\" alt=\"New Relic\"/\u003e\u003cbr/\u003e\n            New Relic\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/opensearchserverless-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/opensearchserverless-icon.png\" alt=\"OpenSearch Serverless\"/\u003e\u003cbr/\u003e\n            OpenSearch Serverless\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/parseable-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/parseable-icon.png\" alt=\"Parseable\"/\u003e\u003cbr/\u003e\n            Parseable\n        \u003c/a\u003e\n    \u003c/td\u003e\n\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/pingdom-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/pingdom-icon.png\" alt=\"Pingdom\"/\u003e\u003cbr/\u003e\n            Pingdom\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/prometheus-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/prometheus-icon.png\" alt=\"Prometheus\"/\u003e\u003cbr/\u003e\n            Prometheus\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/rollbar-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/rollbar-icon.png\" alt=\"Rollbar\"/\u003e\u003cbr/\u003e\n            Rollbar\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/sentry-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/sentry-icon.png\" alt=\"Sentry\"/\u003e\u003cbr/\u003e\n            Sentry\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/signalfx-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/signalfx-icon.png\" alt=\"SignalFX\"/\u003e\u003cbr/\u003e\n            SignalFX\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/openobserve-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/openobserve-icon.png\" alt=\"OpenObserve\"/\u003e\u003cbr/\u003e\n            OpenObserve\n        \u003c/a\u003e\n    \u003c/td\u003e\n\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/site24x7-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/site24x7-icon.png\" alt=\"Site24x7\"/\u003e\u003cbr/\u003e\n          Site24x7\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/splunk-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/splunk-icon.png\" alt=\"Splunk\"/\u003e\u003cbr/\u003e\n          Splunk\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/statuscake-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/statuscake-icon.png\" alt=\"StatusCake\"/\u003e\u003cbr/\u003e\n          StatusCake\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/sumologic-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/sumologic-icon.png\" alt=\"SumoLogic\"/\u003e\u003cbr/\u003e\n          SumoLogic\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/thousandeyes-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/thousandeyes-icon.png\" alt=\"SumoLogic\"/\u003e\u003cbr/\u003e\n          ThousandEyes\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/uptimekuma-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/uptimekuma-icon.png\" alt=\"UptimeKuma\"/\u003e\u003cbr/\u003e\n          UptimeKuma\n        \u003c/a\u003e\n  \u003c/td\u003e\n\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/victorialogs-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/victorialogs-icon.png\" alt=\"VictoriaLogs\"/\u003e\u003cbr/\u003e\n          VictoriaLogs\n        \u003c/a\u003e\n  \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/victoriametrics-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/victoriametrics-icon.png\" alt=\"VictoriaMetrics\"/\u003e\u003cbr/\u003e\n          VictoriaMetrics\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/wazuh-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/wazuh-icon.png\" alt=\"Wazuh\"/\u003e\u003cbr/\u003e\n          Wazuh\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/zabbix-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/zabbix-icon.png\" alt=\"Zabbix\"/\u003e\u003cbr/\u003e\n          Zabbix\n        \u003c/a\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Databases \u0026 Data Warehouses\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/bigquery-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/bigquery-icon.png\" alt=\"BigQuery\"/\u003e\u003cbr/\u003e\n            BigQuery\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/clickhouse-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/clickhouse-icon.png\" alt=\"ClickHouse\"/\u003e\u003cbr/\u003e\n            ClickHouse\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/databend-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/databend-icon.png\" alt=\"Databend\"/\u003e\u003cbr/\u003e\n            Databend\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/mongodb-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/mongodb-icon.png\" alt=\"MongoDB\"/\u003e\u003cbr/\u003e\n            MongoDB\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/mysql-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/mysql-icon.png\" alt=\"MySQL\"/\u003e\u003cbr/\u003e\n            MySQL\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/postgres-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/postgres-icon.png\" alt=\"PostgreSQL\"/\u003e\u003cbr/\u003e\n            PostgreSQL\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/snowflake-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/snowflake-icon.png\" alt=\"Snowflake\"/\u003e\u003cbr/\u003e\n            Snowflake\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Communication Platforms\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/discord\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/discord-icon.png\" alt=\"Discord\"/\u003e\u003cbr/\u003e\n            Discord\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/google_chat-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/google_chat-icon.png\" alt=\"Google Chat\"/\u003e\u003cbr/\u003e\n            Google Chat\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/mailgun-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/mailgun-icon.png\" alt=\"Mailgun\"/\u003e\u003cbr/\u003e\n            Mailgun\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/mattermost-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/mattermost-icon.png\" alt=\"Mattermost\"/\u003e\u003cbr/\u003e\n            Mattermost\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/ntfy-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/ntfy-icon.png\" alt=\"Ntfy.sh\"/\u003e\u003cbr/\u003e\n            Ntfy.sh\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/pushover-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/pushover-icon.png\" alt=\"Pushover\"/\u003e\u003cbr/\u003e\n            Pushover\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/resend-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/resend-icon.png\" alt=\"Resend\"/\u003e\u003cbr/\u003e\n            Resend\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/sendgrid-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/sendgrid-icon.png\" alt=\"SendGrid\"/\u003e\u003cbr/\u003e\n          SendGrid\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/slack-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/slack-icon.png\" alt=\"Slack\"/\u003e\u003cbr/\u003e\n          Slack\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/smtp-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/smtp-icon.png\" alt=\"SMTP\"/\u003e\u003cbr/\u003e\n          SMTP\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/teams-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/teams-icon.png\" alt=\"Teams\"/\u003e\u003cbr/\u003e\n          Teams\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/zoom-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/zoom-icon.png\" alt=\"Teams\"/\u003e\u003cbr/\u003e\n          Zoom\n      \u003c/a\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/telegram-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/telegram-icon.png\" alt=\"Telegram\"/\u003e\u003cbr/\u003e\n          Telegram\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/twilio-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/twilio-icon.png\" alt=\"Twilio\"/\u003e\u003cbr/\u003e\n          Twilio\n      \u003c/a\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Incident Management\n\n\u003ctable\u003e\n  \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/grafana_incident-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/grafana_incident-icon.png\" alt=\"Grafana Incident\"/\u003e\u003cbr/\u003e\n              Grafana Incident\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/grafana_oncall-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/grafana_oncall-icon.png\" alt=\"Grafana OnCall\"/\u003e\u003cbr/\u003e\n              Grafana OnCall\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/ilert-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/ilert-icon.png\" alt=\"Ilert\"/\u003e\u003cbr/\u003e\n              Ilert\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/incidentio-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/incidentio-icon.png\" alt=\"Incident.io\"/\u003e\u003cbr/\u003e\n              Incident.io\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/incidentmanager-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/incidentmanager-icon.png\" alt=\"AWS Incident Manager\"/\u003e\u003cbr/\u003e\n              AWS Incident Manager\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/opsgenie-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/opsgenie-icon.png\" alt=\"OpsGenie\"/\u003e\u003cbr/\u003e\n              OpsGenie\n          \u003c/a\u003e\n      \u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/pagerduty-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/pagerduty-icon.png\" alt=\"PagerDuty\"/\u003e\u003cbr/\u003e\n              PagerDuty\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/pagertree-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/pagertree-icon.png\" alt=\"Pagertree\"/\u003e\u003cbr/\u003e\n              Pagertree\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/signl4-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/signl4-icon.png\" alt=\"SINGL4\"/\u003e\u003cbr/\u003e\n              SINGL4\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/squadcast-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/squadcast-icon.png\" alt=\"Squadcast\"/\u003e\u003cbr/\u003e\n              Squadcast\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/zenduty-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/zenduty-icon.png\" alt=\"Zenduty\"/\u003e\u003cbr/\u003e\n              Zenduty\n          \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"150\"\u003e\n          \u003ca href=\"https://docs.keephq.dev/providers/documentation/flashduty-provider\" target=\"_blank\"\u003e\n              \u003cimg width=\"40\" src=\"keep-ui/public/icons/flashduty-icon.png\" alt=\"Flashduty\"/\u003e\u003cbr/\u003e\n              Flashduty\n          \u003c/a\u003e\n      \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Ticketing Tools\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/asana-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/asana-icon.png\" alt=\"Asana\"/\u003e\u003cbr/\u003e\n            Asana\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/github-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/github-icon.png\" alt=\"GitHub\"/\u003e\u003cbr/\u003e\n            GitHub\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/gitlab-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/gitlab-icon.png\" alt=\"GitLab\"/\u003e\u003cbr/\u003e\n            GitLab\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/jira-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/jira-icon.png\" alt=\"Jira\"/\u003e\u003cbr/\u003e\n            Jira\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/linear_provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/linear-icon.png\" alt=\"Linear\"/\u003e\u003cbr/\u003e\n            Linear\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/linearb-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/linearb-icon.png\" alt=\"LinearB\"/\u003e\u003cbr/\u003e\n            LinearB\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/microsoft-planner-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/microsoft-planner-icon.svg\" alt=\"Microsoft Planner\"/\u003e\u003cbr/\u003e\n            Microsoft Planner\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/monday-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/monday-icon.png\" alt=\"Monday\"/\u003e\u003cbr/\u003e\n            Monday\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/redmine-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/redmine-icon.png\" alt=\"Redmine\"/\u003e\u003cbr/\u003e\n            Redmine\n        \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/service-now-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/servicenow-icon.png\" alt=\"ServiceNow\"/\u003e\u003cbr/\u003e\n          ServiceNow\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/trello-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/trello-icon.png\" alt=\"Trello\"/\u003e\u003cbr/\u003e\n          Trello\n      \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\" width=\"150\"\u003e\n      \u003ca href=\"https://docs.keephq.dev/providers/documentation/youtrack-provider\" target=\"_blank\"\u003e\n          \u003cimg width=\"40\" src=\"keep-ui/public/icons/youtrack-icon.png\" alt=\"YouTrack\"/\u003e\u003cbr/\u003e\n          YouTrack\n      \u003c/a\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Container Orchecstration Platforms\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/aks-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/aks-icon.png\" alt=\"Azure AKS\"/\u003e\u003cbr/\u003e\n            Azure AKS\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/argocd-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/argocd-icon.png\" alt=\"ArgoCD\"/\u003e\u003cbr/\u003e\n            ArgoCD\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/gke-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/gke-icon.png\" alt=\"GKE\"/\u003e\u003cbr/\u003e\n            GKE\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/kubernetes-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/kubernetes-icon.png\" alt=\"Kubernetes\"/\u003e\u003cbr/\u003e\n            Kubernetes\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/openshift-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/openshift-icon.png\" alt=\"OpenShift\"/\u003e\u003cbr/\u003e\n            OpenShift\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Data Enrichment\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/bash-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/bash-icon.png\" alt=\"Bash\"/\u003e\u003cbr/\u003e\n            Bash\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/openai-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/openai-icon.png\" alt=\"OpenAI\"/\u003e\u003cbr/\u003e\n            OpenAI\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/python-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/python-icon.png\" alt=\"Python\"/\u003e\u003cbr/\u003e\n            Python\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/quickchart-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/quickchart-icon.png\" alt=\"QuickChart\"/\u003e\u003cbr/\u003e\n            QuickChart\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/ssh-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/ssh-icon.png\" alt=\"SSH\"/\u003e\u003cbr/\u003e\n            SSH\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/webhook-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/webhook-icon.png\" alt=\"Webhook\"/\u003e\u003cbr/\u003e\n            Webhook\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Workflow Orchestration\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/airflow-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/airflow-icon.png\" alt=\"Airflow\"/\u003e\u003cbr/\u003e\n            Airflow\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Queues\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/amazonsqs-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/amazonsqs-icon.png\" alt=\"AmazonSQS\"/\u003e\u003cbr/\u003e\n            Amazon SQS\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\n        \u003ca href=\"https://docs.keephq.dev/providers/documentation/kafka-provider\" target=\"_blank\"\u003e\n            \u003cimg width=\"40\" src=\"keep-ui/public/icons/kafka-icon.png\" alt=\"Kafka\"/\u003e\u003cbr/\u003e\n            Kafka\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Workflows\n\nKeep is GitHub Actions for your monitoring tools.\n\nA Keep Workflow is a declarative YAML file that automates your alert and incident management. Each workflow consists of:\n\n- **Triggers** - What starts the workflow (alerts, incidents, schedule or manual)\n- **Steps** - Read or fetch data (enrichment, context)\n- **Actions** - Execute operations (update tickets, send notifications, restart servers)\n\nHere's a simple workflow that creates a Jira ticket for every `critical` alert from `sentry` for `payments` and `api` services.\n\nFor more workflows, see [here](https://github.com/keephq/keep/tree/main/examples/workflows).\n\n```yaml\nworkflow:\n  id: sentry-alerts\n  description: create ticket alerts for critical alerts from sentry\n  triggers:\n    - type: alert\n      # customize the filter to run only on critical alert from sentry\n      filters:\n        - key: source\n          value: sentry\n        - key: severity\n          value: critical\n        # regex to match specific services\n        - key: service\n          value: r\"(payments|ftp)\"\n  actions:\n    - name: send-slack-message-team-payments\n      # if the alert is on the payments service, slack the payments team\n      if: \"'{{ alert.service }}' == 'payments'\"\n      provider:\n        type: slack\n        # control which Slack configuration you want to use\n        config: \" {{ providers.team-payments-slack }} \"\n        # customize the alert message with context from {{ alert }} or any other {{ step }}\n        with:\n          message: |\n            \"A new alert from Sentry: Alert: {{ alert.name }} - {{ alert.description }}\n            {{ alert}}\"\n    - name: create-jira-ticket-oncall-board\n      # control the workflow flow with \"if\" and \"foreach\" statements\n      if: \"'{{ alert.service }}' == 'ftp' and not '{{ alert.ticket_id }}'\"\n      provider:\n        type: jira\n        config: \" {{ providers.jira }} \"\n        with:\n          board_name: \"Oncall Board\"\n          custom_fields:\n            customfield_10201: \"Critical\"\n          issuetype: \"Task\"\n          # customize the summary\n          summary: \"{{ alert.name }} - {{ alert.description }} (created by Keep)\"\n          description: |\n            \"This ticket was created by Keep.\n            Please check the alert details below:\n            {code:json} {{ alert }} {code}\"\n          # enrich the alerts with more context. from now on, the alert will be assigned with the ticket id, type and url\n          enrich_alert:\n            - key: ticket_type\n              value: jira\n            - key: ticket_id\n              value: results.issue.key\n            - key: ticket_url\n              value: results.ticket_url\n```\n\n## Enterprise Ready\n\n- **Developer First** - Modern REST APIs, native SDKs, and comprehensive documentation for seamless integration\n- **[Enterprise Security](https://docs.keephq.dev/deployment/authentication/overview)** - Full authentication support (SSO, SAML, OIDC, LDAP) with granular access control (RBAC, ABAC) and team management\n- **Flexible Deployment** - Deploy on-premises or in air-gapped environments with cloud-agnostic architecture\n- **[Production Scale](https://docs.keephq.dev/deployment/stress-testing)** - High availability, performance-tested infrastructure supporting horizontal scaling for enterprise workloads\n\n## Getting Started\n\n\u003e Need help? Can't find your environment listed? Reach out on Slack and we'll help you quickly.\n\nKeep can run in various environments and configurations. The easiest way to start is with Keep's Docker Compose.\n\n- Running Keep [locally](https://docs.keephq.dev/development/getting-started).\n- Running Keep on [Kubernetes](https://docs.keephq.dev/deployment/kubernetes/installation).\n- Running Keep with [Docker](https://docs.keephq.dev/deployment/docker).\n- Running Keep on [AWS ECS](https://docs.keephq.dev/deployment/ecs).\n- Running Keep on [OpenShift](https://docs.keephq.dev/deployment/kubernetes/openshift).\n\n## 🫵 Keepers\n\n### Top Contributors\n\nA special thanks to our top contributors who help us make Keep great. You are more than awesome!\n\n- [Furkan](https://github.com/pehlicd)\n- [Asharon](https://github.com/asharonbaltazar)\n\nWant to become a top contributor? Join our Slack and DM Tal, Shahar, or Furkan.\n\n### Contributors\n\nThank you for contributing and continuously making \u003cb\u003eKeep\u003c/b\u003e better, \u003cb\u003eyou're awesome\u003c/b\u003e 🫶\n\n\u003ca href=\"https://github.com/keephq/keep/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=keephq/keep\" /\u003e\n\u003c/a\u003e\n","funding_links":[],"categories":["Observability \u0026 Monitoring","Python","Incident Management / Incident Response / IT Alerting / On-Call","Projects by main language","AIOps Platforms \u0026 Frameworks","python3","Alerts Management","Monitor","\u003ca id=\"tools\"\u003e\u003c/a\u003e🛠️ Tools","Repos","\u003ca name=\"utility\"\u003e\u003c/a\u003eUtilities","🚨 Incident Management e On-Call","Platforms"],"sub_categories":["Container Orchestration","python","Full-Stack AIOps Platforms","Bleeding Edge ⚗️","Ferramentas Open Source"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeephq%2Fkeep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeephq%2Fkeep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeephq%2Fkeep/lists"}