159 lines
4.8 KiB
JSON
159 lines
4.8 KiB
JSON
{
|
|
"dashboard": {
|
|
"title": "DBIS Core - API Performance",
|
|
"tags": ["api", "performance", "latency"],
|
|
"timezone": "browser",
|
|
"schemaVersion": 27,
|
|
"version": 1,
|
|
"refresh": "30s",
|
|
"panels": [
|
|
{
|
|
"id": 1,
|
|
"title": "Request Rate",
|
|
"type": "graph",
|
|
"targets": [
|
|
{
|
|
"expr": "sum(rate(http_requests_total{job=\"dbis-core\"}[5m])) by (endpoint)",
|
|
"legendFormat": "{{endpoint}}"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 0}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"title": "Response Time Percentiles",
|
|
"type": "graph",
|
|
"targets": [
|
|
{
|
|
"expr": "histogram_quantile(0.50, sum(rate(http_request_duration_seconds_bucket{job=\"dbis-core\"}[5m])) by (le, endpoint))",
|
|
"legendFormat": "{{endpoint}} - P50"
|
|
},
|
|
{
|
|
"expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=\"dbis-core\"}[5m])) by (le, endpoint))",
|
|
"legendFormat": "{{endpoint}} - P95"
|
|
},
|
|
{
|
|
"expr": "histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket{job=\"dbis-core\"}[5m])) by (le, endpoint))",
|
|
"legendFormat": "{{endpoint}} - P99"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 0}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"title": "Error Rate by Endpoint",
|
|
"type": "graph",
|
|
"targets": [
|
|
{
|
|
"expr": "sum(rate(http_requests_total{job=\"dbis-core\",status=~\"5..\"}[5m])) by (endpoint)",
|
|
"legendFormat": "{{endpoint}} - 5xx"
|
|
},
|
|
{
|
|
"expr": "sum(rate(http_requests_total{job=\"dbis-core\",status=~\"4..\"}[5m])) by (endpoint)",
|
|
"legendFormat": "{{endpoint}} - 4xx"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 8}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"title": "Top Endpoints by Request Volume",
|
|
"type": "bargraph",
|
|
"targets": [
|
|
{
|
|
"expr": "topk(10, sum(rate(http_requests_total{job=\"dbis-core\"}[5m])) by (endpoint))",
|
|
"legendFormat": "{{endpoint}}"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 8}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"title": "Request Rate by Method",
|
|
"type": "piechart",
|
|
"targets": [
|
|
{
|
|
"expr": "sum(rate(http_requests_total{job=\"dbis-core\"}[5m])) by (method)",
|
|
"legendFormat": "{{method}}"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 8, "x": 0, "y": 16}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"title": "Request Rate by Status Code",
|
|
"type": "piechart",
|
|
"targets": [
|
|
{
|
|
"expr": "sum(rate(http_requests_total{job=\"dbis-core\"}[5m])) by (status)",
|
|
"legendFormat": "{{status}}"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 8, "x": 8, "y": 16}
|
|
},
|
|
{
|
|
"id": 7,
|
|
"title": "SLO Compliance - Availability",
|
|
"type": "stat",
|
|
"targets": [
|
|
{
|
|
"expr": "(1 - (sum(rate(http_requests_total{job=\"dbis-core\",status=~\"5..\"}[5m])) / sum(rate(http_requests_total{job=\"dbis-core\"}[5m])))) * 100",
|
|
"legendFormat": "Availability %"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{"value": 0, "color": "red"},
|
|
{"value": 99.9, "color": "yellow"},
|
|
{"value": 99.99, "color": "green"}
|
|
]
|
|
},
|
|
"unit": "percent"
|
|
}
|
|
},
|
|
"gridPos": {"h": 4, "w": 4, "x": 16, "y": 16}
|
|
},
|
|
{
|
|
"id": 8,
|
|
"title": "SLO Compliance - P95 Latency",
|
|
"type": "stat",
|
|
"targets": [
|
|
{
|
|
"expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=\"dbis-core\"}[5m])) by (le))",
|
|
"legendFormat": "P95 Latency"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{"value": 0, "color": "green"},
|
|
{"value": 0.5, "color": "yellow"},
|
|
{"value": 1.0, "color": "red"}
|
|
]
|
|
},
|
|
"unit": "s"
|
|
}
|
|
},
|
|
"gridPos": {"h": 4, "w": 4, "x": 20, "y": 16}
|
|
},
|
|
{
|
|
"id": 9,
|
|
"title": "Request Duration Distribution",
|
|
"type": "heatmap",
|
|
"targets": [
|
|
{
|
|
"expr": "sum(rate(http_request_duration_seconds_bucket{job=\"dbis-core\"}[5m])) by (le)",
|
|
"legendFormat": "{{le}}"
|
|
}
|
|
],
|
|
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 24}
|
|
}
|
|
]
|
|
}
|
|
}
|