Skip to content

mintlify-onboarding/keep-docs

 
 

Repository files navigation

The open-source alerts management platform


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

🚨 What is an alert?

An alert is a human-readable notification that informs about the status of a service or a component. Alerts are sent, based on their urgency, to ticketing platforms, queues or directly to the owners of the components being affected.

Having a structured alerting policy in your enviroment is pivotal to gain better visibility of the monitored components and reduce MTTD (Mean Time To Detect) of issues that could undermine the functionality of your system.

🚀 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 🫶

About

Open source alerts management platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 73.2%
  • TypeScript 23.8%
  • CSS 1.8%
  • Other 1.2%