Skip to content

On-call Health: identify signs that incident responders are overworked.

License

Notifications You must be signed in to change notification settings

Rootly-AI-Labs/On-Call-Health

Repository files navigation

On-call Health

License Docker Rootly PagerDuty GitHub Slack Jira Linear OpenAI Anthropic

Catch exhaustion before it burns out your incident responders.

On-Call Health integrates with Rootly, PagerDuty, GitHub, Slack, Linear, and Jira to collect objective and self-reported data to identify signs of overload among on-call engineers. Free and open-source.

Get started at www.oncallhealth.ai or self-host it.

On-Call Health Dashboard

Methodology

On-call Health takes inspiration from the CBI to measure overwork risk in professional settings. On-call Health isn't a medical or diagnostic tool; it is designed to help identify patterns and trends that may suggest overwork.

The tool is centered around 2 main metrics:

  • On-Call Health (OCH) Score — A composite score derived from all collected signals, reflecting an individual's incident response workload.

  • Score Trend — How the OCH score evolves over time relative to each responder's own baseline.

The OCH score measures workload, not well-being directly. People respond differently to incidents, after-hours work, and pressure; some thrive under high-severity incidents, while others don't. The score trend captures whether someone's workload is shifting from their normal, regardless of where that normal sits.

Data Collection

  • Incident Response: Volume, severity, time-to-acknowledge, time-to-resolve, after-hours pages, consecutive on-call days (PagerDuty, Rootly)

  • Work Patterns: After-hours and weekend activity, commit/message timing distribution, on-call shift frequency (Rootly, PagerDuty, GitHub, Slack)

  • Workload: Active issues assigned, PR volume and size, commit frequency, code review participation (Jira, Linear, GitHub)

  • Self-Reported Wellbeing: Feeling and workload scores, stress factors, personal circumstances (Slack surveys)

Integrations ⚒️

  • Rootly: For incident management and on-call data
  • PagerDuty: For incident management and on-call data
  • GitHub: For commit activity
  • Slack: For communication patterns and collecting self-reported data
  • Linear: For workload tracking
  • Jira: For workload tracking

If you are interested in integrating with On-call Health, get in touch!

Installation

1) Environment Variables

⚠️ For login purposes, you must configure OAuth tokens for Google OR GitHub OAuth:

# Create a copy of the .env file
cp backend/.env.example backend/.env
Google Google Auth - Token Setup Instructions
  1. Enable Google People API
  2. Get your tokens
    • Create a new project
    • In the Overview tab, click on Get started button and fill out info
    • Go to the Clients tab and click on + Create client button
    • Set Application type to Web application
    • Set Authorized redirect URIs to http://localhost:8000/auth/google/callback
    • Keep the pop-up that contains your Client ID and Client secret open
  3. Fill out the variable GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in your backend/.env file
  4. Restart backend docker compose restart backend
GitHub GitHub Auth - Token Setup Instructions
  1. Visit https://github.com/settings/developers
    • Click OAuth AppsNew OAuth App
    • Application name: On-Call Health
  2. Create the app:
    • Click Register application
    • You'll see your Client ID
    • Click Generate a new client secret to get your Client Secret
  3. Add to backend/.env:
  4. Restart backend:

2) Docker Setup

Use our Docker Compose file.

# Clone the repo
git clone https://github.com/Rootly-AI-Labs/on-call-health
cd on-call-health

# Launch with Docker Compose
docker compose up -d

Manual setup

You can also set it up manually, but this method isn't actively supported.

Prerequisites

  • Python 3.11+
  • Node.js 18+ (for frontend)
  • Rootly or PagerDuty API token

Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows
pip install -r requirements.txt

# Copy and configure environment
cp .env.example .env
# Edit .env with your configuration

# Run the server
python -m app.main

The API will be available at http://localhost:8000

Frontend Setup

cd frontend
npm install
npm run dev

The frontend will be available at http://localhost:3000

API

On-call Health also offers an API and MCP server that can expose its findings.
Run In Postman

🔗 About the Rootly AI Labs

On-call Health is built with ❤️ by the Rootly AI Labs for engineering teams everywhere. The Rootly AI Labs is a fellow-led community designed to redefine reliability engineering. We develop innovative prototypes, create open-source tools, and produce research that's shared to advance operational excellence standards. We want to thank Anthropic, Google Cloud, and Google DeepMind for their support.

This project is licensed under the Apache License 2.0.

About

On-call Health: identify signs that incident responders are overworked.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9