Notifications
Docs · Try it out · Report Bug · Book a Demo · Website
See full platform documentation.
View the full list in our documentation
Missing a provider? Submit a new provider request and we'll add it quickly!
BigQuery |
ClickHouse |
MongoDB |
MySQL |
PostgreSQL |
Snowflake |
Discord |
Google Chat |
Mailchimp |
Mailgun |
Mattermost |
Ntfy.sh |
Pushover |
Resend |
SendGrid |
Slack |
SMTP |
Teams |
Telegram |
Twilio |
Grafana Incident |
Grafana OnCall |
Ilert |
Incident.io |
AWS Incident Manager |
OpsGenie |
PagerDuty |
Pagertree |
SINGL4 |
Squadcast |
Zenduty |
GitHub |
GitLab |
Jira |
Linear |
LinearB |
Microsoft Planner |
Redmine |
ServiceNow |
Trello |
Azure AKS |
GKE |
Kubernetes |
OpenShift |
Bash |
OpenAI |
Python |
QuickChart |
SSH |
Webhook |
Keep is GitHub Actions for your monitoring tools.
A Keep Workflow is a declarative YAML file that automates your alert and incident management. Each workflow consists of:
Here's a simple workflow that creates a Jira ticket for every critical
alert from sentry
for payments
and api
services.
For more worfklows, see here.
workflow:
id: sentry-alerts
description: create ticket alerts for critical alerts from sentry
triggers:
- type: alert
# customize the filter to run only on critical alert from sentry
filters:
- key: source
value: sentry
- key: severity
value: critical
# regex to match specific services
- key: service
value: r"(payments|ftp)"
actions:
- name: send-slack-message-team-payments
# if the alert is on the payments service, slack the payments team
if: "'{{ alert.service }}' == 'payments'"
provider:
type: slack
# control which Slack configuration you want to use
config: " {{ providers.team-payments-slack }} "
# customize the alert message with context from {{ alert }} or any other {{ step }}
with:
message: |
"A new alert from Sentry: Alert: {{ alert.name }} - {{ alert.description }}
{{ alert}}"
- name: create-jira-ticket-oncall-board
# control the workflow flow with "if" and "foreach" statements
if: "'{{ alert.service }}' == 'ftp' and not '{{ alert.ticket_id }}'"
provider:
type: jira
config: " {{ providers.jira }} "
with:
board_name: "Oncall Board"
custom_fields:
customfield_10201: "Critical"
issuetype: "Task"
# customize the summary
summary: "{{ alert.name }} - {{ alert.description }} (created by Keep)"
description: |
"This ticket was created by Keep.
Please check the alert details below:
{code:json} {{ alert }} {code}"
# enrich the alerts with more context. from now on, the alert will be assigned with the ticket id, type and url
enrich_alert:
- key: ticket_type
value: jira
- key: ticket_id
value: results.issue.key
- key: ticket_url
value: results.ticket_url
Need help? Can't find your environment listed? Reach out on Slack and we'll help you quickly.
Keep can run in various environments and configurations. The easiest way to start is with Keep's Docker Compose.
A special thanks to our top contributors who help us make Keep great. You are more than awesome!
Want to become a top contributor? Join our Slack and DM Tal, Shahar, or Furkan.
Thank you for contributing and continuously making Keep better, you're awesome 🫶