Skip to content
forked from keephq/keep

Alerting. By developers, for developers.

License

Notifications You must be signed in to change notification settings

GabrielSamberg/keep

 
 

Repository files navigation

Alerting. By developers, for developers.


Simple alerting tool, builtin providers (e.g. sentry/datadog or slack/pagerduty), 100% open sourced, free forever.

  • Simple and intuitive (GitHub actions-like) syntax.
  • Declarative alerting that can be easily managed and versioned in your version control and service repository.
  • Alerts from multiple data sources for added context and insights.
  • Freedom from vendor lock-in, making it easier to switch to a different observability tool if and when needed.


Get started »

Roadmap · Examples · Providers · Docs · Website · Add Providers · Report Bug · Slack Community

🗼 A glance of Keep

Keep is a simple CLI tool that contains everything you need to start creating Alerts.

  • 10s of providers ready to use with your own data
  • Simple CLI tool to configure, trigger and test your alerts
  • Easily deployable via docker, vercel, github actions, etc.
  • Alerts are managed by simple yaml files that are human-readable

Brought to you by developers, EASY to use and managable by code.

🚨 Providers

Providers are Keep's way of interacting with 3rd party products; Keep uses them either to query data or to send notifications.

We tried our best to cover all common providers, missing any?, providers include:

  • Cloud: AWS, GCP, Azure, etc.
  • Monitoring: Sentry, New Relic, Datadog, etc.
  • Incident Management: PagerDuty, OpsGenie, etc.
  • Communication: Email, Slack, Discord, Microsoft Teams, etc.
  • and more...

🚀 Quickstart

Run locally

Try our first mock alert and get it up and running in <5 minutes - Ready? Let's Go! ⏰

First, clone Keep repository:
git clone https://github.com/keephq/keep.git && cd keep
Install Keep CLI
pip install .

or

poetry shell
poetry install
From now on, Keep should be installed locally and accessible from your CLI, test it by executing:
keep version

Get a Slack incoming webhook using this tutorial and use Keep to configure it:

keep config provider --provider-type slack --provider-id slack-demo

Paste the Slack Incoming Webhook URL (e.g. https://hooks.slack.com/services/...) and you're good to go 👌

**If you don't want to create your own webhook, you can follow these easy 3 steps:**
  1. Go to keep's slack.

  2. Enter the # alerts-playground channel.

  3. In the channel's topic, you can find the webhook provided by Keep.

Let's now execute our example "Paper DB has insufficient disk space" alert
keep run --alerts-file examples/alerts/db_disk_space.yml
Voilà 🥳

You should have received your first "Dunder Mifflin Paper Company" alert in Slack by now.

Docker

Configure the Slack provider (See "Run locally" on how to obtain the webhook URL)

docker run -v ${PWD}:/app -it keephq/cli config provider --provider-type slack --provider-id slack-demo

You should now have a providers.yaml file created locally

Run Keep and execute our example "Paper DB has insufficient disk space" alert

docker run -v ${PWD}:/app -it keephq/cli -j run --alert-url https://raw.githubusercontent.com/keephq/keep/main/examples/alerts/db_disk_space.yml

Render

Click the Deploy to Render button to deploy Keep as a background worker running in Render

Deploy to Render

To run Keep and execute our example "Paper DB has insufficient disk space" alert, you will need to configure you Slack provider.
When clicking the Deploy to Render button, you will be asked to provide the KEEP_PROVIDER_SLACK_DEMO environment variable, this is the expected format:

{"authentication": {"webhook_url": "https://hooks.slack.com/services/..."}}

* Refer to Run locally on how to obtain the webhook URL

Wanna have your alerts up and running in production? Go through our more detailed Deployment Guide

🔍 Learn more

🫵 Keepers

Thank you for contributing and continuously making Keep better, you're awesome 🫶

About

Alerting. By developers, for developers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%