Risk API
Prefix: /api/risk | Tag: risk
Cluster risk analysis snapshots grouped by severity. Data comes from byoc_agent.cluster_risk_analyzer.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/risk/snapshots | All clusters with risk signals and metrics |
| GET | /api/risk/rules-table | Risk rules as a structured table |
GET /api/risk/snapshots
Returns all clusters with risk level, signals, and detailed metrics.
Response:
{
"clusters": [
{
"cluster_id": "uuid",
"cluster_name": "prod-analytics",
"customer_name": "Acme Corp",
"risk_level": "Critical",
"overall_score": 25,
"risk_signals": ["High compaction score (8500)", "Disk usage > 85%"],
"suggested_actions": ["Investigate tablet compaction", "Add disk capacity"],
"metrics": {
"compaction_score": {"value": 8500.0, "status": "critical"},
"query_errors_7d": {"value": 350, "status": "critical"},
"disk_used_pct": {"value": 88.5, "status": "critical"},
"memory_pct": {"value": 72.3, "status": "warning"},
"peak_jvm_heap_gb": {"value": 24.5, "status": "warning"},
"error_rate_pct": {"value": 2.1, "status": "warning"},
"qps": {"value": 45.2, "status": "healthy"},
"slow_queries_7d": {"value": 85, "status": "warning"}
}
}
],
"summary": {"total": 172, "critical": 5, "warning": 12, "healthy": 155},
"source": "live",
"generated_at": "..."
}
GET /api/risk/rules-table
Returns the risk rules from byoc_agent/cluster_risk_rules.yaml in a structured format for the Settings page.
Response:
{
"lookback_days": 7,
"rules": [
{
"metric_key": "compaction_score",
"category": "storage",
"warning": 500,
"critical": 2000,
"inverted": false,
"aggregation": "Max (7d)",
"action": "Investigate compaction backlog"
}
]
}