Autonomous SRE agents that watch your services, detect anomalies, and generate blameless postmortems
Project description
DevOps Sentinel
Autonomous SRE Agent System - Reduce Mean Time to Detection (MTTD) from minutes to under 10 seconds.
Install from PyPI | Documentation | GitHub
Features
- Continuous Monitoring - Health checks at configurable intervals
- Multi-Agent Analysis - CrewAI-powered investigation and root cause analysis
- AI Postmortems - Automated incident documentation
- Incident Memory - Learn from past incidents with similarity matching
- Real-time Dashboard - WebSocket-powered live updates
- CLI Interface - Terminal-first developer experience
- Privacy-First - No telemetry, transparent data handling
Architecture
+------------------- DevOps Sentinel -------------------+
| CLI (Click) | API (FastAPI) | Dashboard (WebSocket) |
+-------------------------------------------------------+
| Monitoring Orchestrator |
+-------------------------------------------------------+
| Watcher | Triage | Investigator | Strategist |
+-------------------------------------------------------+
| Health checks | Slack alerts | Log/DB analysis |
+-------------------------------------------------------+
| Supabase (Persistence) | OpenRouter/OpenAI | Slack |
+-------------------------------------------------------+
Installation
# Install from PyPI (recommended)
pip install devops-sentinel
For Developers
# Clone the repository
git clone https://github.com/jagadeepmamidi/devops-sentinel.git
cd devops-sentinel
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install in editable mode for development
pip install -e .
Quick Start
# Login to DevOps Sentinel
sentinel login
# Headless environments
sentinel login --device
# Check a service health
sentinel health https://api.example.com
# Monitor a service continuously
sentinel monitor https://api.example.com/health
# View your projects
sentinel projects list
# Validate environment and auth
sentinel doctor
# Guided onboarding
sentinel setup
CLI Commands
| Command | Description |
|---|---|
sentinel init |
Interactive configuration setup |
sentinel monitor <url> |
Monitor a service URL |
sentinel status |
Show configuration and API/provider connectivity |
sentinel incidents list |
List recent incidents |
sentinel postmortem generate <id> |
Generate incident postmortem |
sentinel serve |
Start API server |
sentinel health <url> |
Run one-shot health check |
sentinel doctor |
Run environment diagnostics |
sentinel setup |
Guided first-run onboarding |
Configuration
Create a .env file or run sentinel init:
SENTINEL_WEB_URL=https://devops-sentinel.dev
OPENROUTER_API_KEY=your_key_here
DEFAULT_MODEL=google/gemini-pro
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your_anon_key
# SUPABASE_KEY=your_anon_key # alias also supported
SLACK_WEBHOOK_URL=https://hooks.slack.com/...
sentinel login opens ${SENTINEL_WEB_URL}/cli-auth for signup/signin, then returns to the local CLI callback.
Install Command Note
Use this exact command:
pip install devops-sentinel
pip install devops sentinel (with a space) is invalid.
Release Checklist (GitHub + PyPI)
# 1) Sanity checks
python -m py_compile main.py config.py api_server.py src\cli\main.py src\cli\auth.py
python main.py --help
python main.py --json doctor
# 2) Build package
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
# 3) Publish (PyPI)
python -m twine upload dist/*
# 4) Verify install from PyPI
python -m venv /tmp/sentinel-smoke
# Windows: python -m venv %TEMP%\sentinel-smoke
pip install devops-sentinel
sentinel --version
Docker Deployment
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f sentinel
How It Works
- Watcher Agent continuously monitors service health endpoints
- On failure, First Responder sends a Slack alert
- Investigator analyzes logs, deployments, and database status
- Strategist creates a prioritized action plan
- AI generates a structured postmortem saved to Supabase
Privacy
- All data stays local or in YOUR Supabase instance
- No telemetry or external data collection
- Use
sentinel doctorto validate configuration and connectivity - OpenRouter calls only contain health check context (no PII)
Supabase Schema
-- Run these in your Supabase SQL editor
CREATE TABLE services (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
url TEXT NOT NULL,
check_interval INTEGER DEFAULT 10,
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE incidents (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
service_id UUID REFERENCES services(id),
status TEXT DEFAULT 'detecting',
detected_at TIMESTAMPTZ DEFAULT now(),
resolved_at TIMESTAMPTZ,
mttd_seconds FLOAT,
postmortem TEXT
);
CREATE TABLE health_checks (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
service_id UUID REFERENCES services(id),
status_code INTEGER,
response_time_ms FLOAT,
is_healthy BOOLEAN,
checked_at TIMESTAMPTZ DEFAULT now()
);
License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file devops_sentinel-0.2.0.tar.gz.
File metadata
- Download URL: devops_sentinel-0.2.0.tar.gz
- Upload date:
- Size: 121.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
165d7bbe8f1a5f3d888fa25b20ee9efd146a7e0265905e97ae97a73e524ef53c
|
|
| MD5 |
ba750a50d174f736e702a6aef5cbd09d
|
|
| BLAKE2b-256 |
e3978f1d75514e80a7867d55c39a86b4bfb2a06c287315419a6d1e97a43523e0
|
File details
Details for the file devops_sentinel-0.2.0-py3-none-any.whl.
File metadata
- Download URL: devops_sentinel-0.2.0-py3-none-any.whl
- Upload date:
- Size: 134.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cedf9258bf954dcefd404f44c252fcacae697af8e4434934cfd62046a7c802a
|
|
| MD5 |
70d2fb37eae63644a8cdee18fba677b9
|
|
| BLAKE2b-256 |
2b5828085ab242f69799d27d93d7859385032fd3f5cb607df5c9c0cfff22f11a
|