Send a test alert to see the engine in action
Submit an alert from any monitoring tool. OpsPilot auto-detects the source format (Datadog, PagerDuty, or custom).
curl -X POST https://opspilot-11.polsia.app/api/incidents \
-H "Content-Type: application/json" \
-d '{
"title": "CPU spike on prod-api-3",
"severity": "critical",
"service": "api-gateway",
"host": "prod-api-3",
"metric_name": "cpu",
"value": 94.5,
"threshold": 90,
"description": "CPU utilization sustained above 90% for 5 minutes"
}'
Dedicated Datadog webhook endpoint. Use this URL in Datadog notification channels.
curl -X POST https://opspilot-11.polsia.app/api/incidents/datadog \
-H "Content-Type: application/json" \
-d '{
"title": "[P1] High CPU on prod-api",
"priority": "P1",
"host": "prod-api-3",
"tags": ["service:api-gateway", "env:production"],
"body": "CPU at 95% for 10 minutes"
}'
PagerDuty webhook endpoint. Configure as a webhook extension in PagerDuty.
curl -X POST https://opspilot-11.polsia.app/api/incidents/pagerduty \
-H "Content-Type: application/json" \
-d '{
"event": {
"data": {
"title": "Memory leak in order-service",
"severity": "critical",
"service": { "name": "order-service" },
"custom_details": {
"hostname": "prod-worker-2",
"metric": "memory",
"value": "91"
}
}
}
}'
List all incidents. Supports filtering by status, severity, and source.
curl https://opspilot-11.polsia.app/api/incidents?status=resolved&severity=critical&limit=20
Get full incident detail including diagnosis, matched runbook, and actions taken.
curl https://opspilot-11.polsia.app/api/incidents/1
Get dashboard statistics: totals, averages, and recent activity.
curl https://opspilot-11.polsia.app/api/incidents/stats
List all runbooks in the library.
curl https://opspilot-11.polsia.app/api/runbooks
Create a custom runbook.
curl -X POST https://opspilot-11.polsia.app/api/runbooks \
-H "Content-Type: application/json" \
-d '{
"name": "Redis OOM - Flush and Restart",
"description": "When Redis runs out of memory",
"trigger_conditions": { "metric": "redis_memory", "operator": "gt", "threshold": 95 },
"steps": [
{ "order": 1, "action": "diagnose", "description": "Check key sizes" },
{ "order": 2, "action": "flush", "description": "Flush expired keys" },
{ "order": 3, "action": "restart", "description": "Restart Redis" }
],
"auto_execute": false,
"severity_filter": "critical",
"category": "database",
"tags": ["redis", "memory", "cache"]
}'