/keep

The open-source alert management and AIOps platform

Primary LanguagePythonOtherNOASSERTION

The open-source alert management and AIOps platform

Single pane of glass, filtering, bi-directional integrations, alert correlation, workflows, enrichment, dashboards.
AI correlation and AI summarization are under the limited preview (Book a Demo)

Join Slack

Why Keep? · Getting started · Supported tools and integrations · Docs · Try it out · Website · Report Bug · Slack Community

How does it work?

  1. Connect your tools: Connect everything from monitoring platforms to databases and ticketing systems.
Connect providers Receive alerts
  1. Set up Workflows: Initiate automated workflows in response to alerts or based on custom intervals.
Create and upload workflows
  1. Operational efficiency: Automate your alert handling to focus your team's efforts on what really matters.

Why Keep?

  1. Centralized dashboard: Manage all your alerts across different platforms in a single interface.
  2. Noise reduction: Deduplicate and correlate alerts to reduce alert fatigue.
  3. Automation: Trigger workflows for alert enrichment and response.
  4. Developer-first: Keep is API-first and lets you manage your workflows as code.
  5. Works with every tool: Plenty of supported providers and more to come.

Workflows

The easiest way of thinking about Workflow in Keep is GitHub Actions. At its core, a Workflow in Keep is a declarative YAML file, composed of triggers, steps, and actions and serves to manage, enrich, and automate responses to alerts:

workflow:
  id: most-basic-keep-workflow
  description: send a slack message when a cloudwatch alarm is triggered
  # workflow triggers - supports alerts, interval, and manual triggers
  triggers:
    - type: alert
      filters:
        - key: source
          value: cloudwatch
    - type: manual
  # list of steps that can add context to your alert
  steps:
    - name: enrich-alert-with-more-data-from-a-database
      provider:
        type: bigquery
        config: "{{ providers.bigquery-prod }}"
        with:
          query: "SELECT customer_id, customer_type as date FROM `customers_prod` LIMIT 1"
  # list of actions that can automate response and do things with your alert
  actions:
    - name: trigger-slack
      provider:
        type: slack
        config: " {{ providers.slack-prod }} "
        with:
          message: "Got alarm from aws cloudwatch! {{ alert.name }}"

Workflow triggers can either be executed manually when an alert is activated or run at predefined intervals. More examples can be found here.

Supported Providers

Missing any? Just submit a new provider issue and we will add it in the blink of an eye.

Observability tools

                                                                                                  

                                                                            

Databases and data warehouses

                                           

Communication platforms

                                                                                                  

Incident Management tools

                                                                                                                                                                    

Ticketing tools

                                                      

Container Orchestration platforms

          

Getting Started

Overview

Keep composed of three main components:

  1. Keep UI - A NextJS app to connect your providers, centralize alerts and create the workflows.
  2. Keep Backend - A FastAPI server that implements the business logic behind Keep, including integrating with the tools, working with alerts and scheduling and running the workflows.
  3. Keep CLI - A CLI that lets you control and manage Keep via CLI.

Disclaimer: we use PostHog to collect anonymous telemetries to better learn how users use Keep (masked screen recordings for CLI commands) To turn PostHog off, set the DISABLE_POSTHOG=true environment variable and remove the NEXT_PUBLIC_POSTHOG_KEY environment variable.

Quickstart

Spinning up Keep with docker-compose

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

curl https://raw.githubusercontent.com/keephq/keep/main/start.sh | sh

The UI is now available at http://localhost:3000 and the backend is available at http://localhost:8080.

Spinning up Keep with Helm on Kubernetes/Openshift

To install Keep to your Kubernetes ease free with Helm, run the following commands:

helm repo add keephq https://keephq.github.io/helm-charts
helm pull keephq/keep
helm install keep keephq/keep

More information about the Helm chart can be found here.

Local development

You can also start Keep within your favorite IDE, e.g. VSCode

Wanna get Keep up and running in production? Go through our detailed development guide

🫵 Keepers

Top Contributors

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.

Contributors

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