/keep

Open source alerting management for software developers.

Primary LanguagePythonMIT LicenseMIT

The open-source alerts management platform


Slack community channel

Keep enables you to create, manage, test, and maintain your alerts all in one place.

  • Integrations: Integrates with your existing tools (e.g. grafana/sentry/datadog/slack/pagerduty)
  • Intutive: Create alerts via a simple and intuitive (GitHub actions-like) syntax.
  • Alerts as code: Declarative alerting that can be easily managed and versioned in your version control and service repository.
  • Alerts as workflows: Create alerts from multiple data sources for added context and insights.

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

🚀 Quickstart

Keep has two main component that play with each other:

  1. Keep UI - UI to manage your alerts, connect providers and install apps.
  2. Keep Core - The engine behind Keep.

Keep UI

The easiest way to start with Keep is to run it via docker-compose:

wget -O docker-compose.yml https://github.com/keephq/keep/blob/main/docker-compose.yml
docker-compose -f docker-compose.yml up

Keep UI is now available at http://localhost:3000

Keep Core

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 🫶