From our teaching data: 89% of teams can't answer "Is AI helping?" This framework provides quantifiable metrics to prove ROI to leadership.
What it measures: Hours of manual troubleshooting replaced by automated agent analysis.
Target: 10-20 hours/week for a team of 5 SREs.
PromQL:
# Average time saved per agent execution (seconds)
avg(agent_execution_time_saved_seconds) by (agent_type)
# Total time saved this week
sum(increase(agent_time_saved_seconds_total[7d]))
What it measures: Anomalies caught by agents before user impact.
Target: 15-30 per month after Phase 1 stabilization.
PromQL:
# Incidents detected per day
sum(increase(agent_incidents_detected_total[24h])) by (severity)
# Prevention rate (detected before user impact)
sum(agent_incidents_prevented_total) / sum(agent_incidents_detected_total) * 100
What it measures: Reduction in mean time to resolution with agent-assisted troubleshooting.
Target: 40-50% improvement (e.g., 20min → 11min).
PromQL:
# MTTR with agent assistance
histogram_quantile(0.5, rate(incident_resolution_time_seconds_bucket{assisted="true"}[7d]))
# MTTR without agent assistance (baseline)
histogram_quantile(0.5, rate(incident_resolution_time_seconds_bucket{assisted="false"}[7d]))
What it measures: Percentage of agent alerts/recommendations that were not actionable.
Target: Below 15%. Above 25% indicates agents are generating noise, not value.
PromQL:
# False positive rate over 7 days
sum(increase(agent_recommendations_dismissed_total[7d]))
/
sum(increase(agent_recommendations_total[7d])) * 100
What it measures: Dollar value of waste eliminated by cost optimization agents.
Target: $30K-60K/year for a mid-size cluster.
PromQL:
# Monthly cost savings from agent recommendations
sum(increase(agent_cost_savings_dollars_total[30d]))
# Over-provisioned resource value identified
sum(opencost_resource_waste_dollars) by (namespace, workload)
Row 1: Executive Summary
[Time Saved This Week] [Incidents Prevented] [MTTR Improvement %]
Row 2: Agent Activity
[Executions/Hour] [Error Rate] [Avg Response Time]
Row 3: Quality Metrics
[False Positive Rate] [Tool Call Success %] [Token Usage/Cost]
Row 4: Cost Impact
[Monthly Savings] [Waste Identified] [GPU Cost Attribution]
{
"dashboard": {
"title": "Platform Intelligence - AI Operations ROI",
"tags": ["kagent", "ai-ops", "platform-intelligence"],
"panels": [
{
"title": "Time Saved This Week",
"type": "stat",
"targets": [
{
"expr": "sum(increase(agent_time_saved_seconds_total[7d])) / 3600",
"legendFormat": "Hours Saved"
}
],
"fieldConfig": {
"defaults": {
"unit": "h",
"thresholds": {
"steps": [
{"color": "red", "value": 0},
{"color": "yellow", "value": 5},
{"color": "green", "value": 10}
]
}
}
}
},
{
"title": "False Positive Rate",
"type": "gauge",
"targets": [
{
"expr": "sum(increase(agent_recommendations_dismissed_total[7d])) / sum(increase(agent_recommendations_total[7d])) * 100"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"max": 100,
"thresholds": {
"steps": [
{"color": "green", "value": 0},
{"color": "yellow", "value": 15},
{"color": "red", "value": 25}
]
}
}
}
}
]
}
}Add these to your Prometheus configuration to pre-compute dashboard metrics:
groups:
- name: agent_roi_metrics
interval: 60s
rules:
- record: agent:time_saved:weekly_hours
expr: sum(increase(agent_time_saved_seconds_total[7d])) / 3600
- record: agent:false_positive:rate7d
expr: |
sum(increase(agent_recommendations_dismissed_total[7d]))
/
sum(increase(agent_recommendations_total[7d])) * 100
- record: agent:cost_savings:monthly_dollars
expr: sum(increase(agent_cost_savings_dollars_total[30d]))
- record: agent:mttr:improvement_percent
expr: |
(1 - (
histogram_quantile(0.5, rate(incident_resolution_time_seconds_bucket{assisted="true"}[7d]))
/
histogram_quantile(0.5, rate(incident_resolution_time_seconds_bucket{assisted="false"}[7d]))
)) * 100- Baseline first. Collect 2-4 weeks of data before deploying agents to establish comparison metrics.
- Measure outcomes, not activity. "Agent made 500 tool calls" is not a useful metric. "Agent reduced MTTR by 45%" is.
- Track false positives aggressively. High false positive rates erode team trust faster than any benefit agents provide.
- Report monthly to leadership. Use the executive summary row for stakeholder updates.
- Iterate on thresholds. The targets above are starting points — calibrate to your environment after 30 days.