Skip to content

DrDroidLab/PlayBooks

Repository files navigation

Doctor Droid Logo

Docs | Sandbox | Community


tl;dr Enrich your Slack alerts with contextual observability data, helping on-call engineer investigate faster.

About PlayBooks

PlayBooks are executable notebooks designed to Automate Preliminary Investigations in Production for engineers. Watch demo video.

Automating Playbook Executions

  1. Define a playbook with your enrichment logic
  2. Configure the playbook to auto-trigger basis a Slack alert received in a channel
  3. Receive automated investigation summary in the Slack thread for the same alert

Playground:

  • Explore the sandbox to get a sense of how the playbooks work.
  • You can also check out the #demo-alerts channel in community Slack workspace to see how automated replies are received for alerts.

Capabilities

  • Enrichment library: The tool currently supports fetching 50+ types of enrichment data from metric sources (Datadog, New Relic, Grafana+Prometheus, Cloudwatch Metrics), Logs & Events (Cloudwatch Logs, EKS) and Databases (PostgreSQL DB, Clickhouse DB)

  • Past Executions: See the historical runs of a playbook and go back to an investigation from a specific point in time.

  • Continuous monitoring: Setup continuous monitoring cron for specific use-cases (e.g. post deployment, peak hours, post bug-fix). Read docs for list of allowed configurations.

  • Interpretation Layer: Configure ML modules which can analyse & interpret data from your investigation playbooks.

Coming Soon:

  • Templates: Common investigation & troubleshooting logics which can be used out of the box.
  • Conditionals: Create decision trees in your playbooks basis evaluation of a playbook step.
  • More integrations: Find something missing? Request here.

Getting Started with alert enrichment

Use latest stable version

via Docker Compose

docker-compose -f deploy.docker-compose.yaml up -d

Access the portal at localhost (on port 80)

via Helm (on a kubernetes cluster)

cd helm
helm install playbooks .

Run the following command to get the portal endpoint

kubectl get svc web -o custom-columns="EXTERNAL-IP:.status.loadBalancer.ingress[*].hostname"

OR

Build from Source

git clone [email protected]:DrDroidLab/PlayBooks.git

docker-compose -f playbooks.docker-compose.yaml up -d

Step 2: Follow this Step-by-Step guide to do your first alert enrichment.

Have feedback or queries?

Asks questions in the Slack Community or write to us at founders [at] drdroid [dot] io

Want to contribute?

Read our contribution guidelines

Roadmap

Read our roadmap here