Files
git.stella-ops.org/devops/telemetry/dashboards/stella-ops-gateway-performance.json

494 lines
14 KiB
JSON

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"description": "Stella Ops Gateway (StellaRouter) — Performance Curve Modeling & k6 Metrics",
"editable": true,
"gnetId": null,
"graphTooltip": 2,
"id": null,
"iteration": 1738972800000,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 },
"id": 1,
"panels": [],
"title": "Gateway Overview",
"type": "row"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "thresholds" },
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 2 },
{ "color": "red", "value": 5 }
]
},
"unit": "ms"
}
},
"gridPos": { "h": 4, "w": 6, "x": 0, "y": 1 },
"id": 2,
"options": {
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"targets": [
{
"expr": "histogram_quantile(0.50, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P50",
"refId": "A"
}
],
"title": "Routing Latency P50",
"type": "gauge"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "thresholds" },
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 3 },
{ "color": "red", "value": 5 }
]
},
"unit": "ms"
}
},
"gridPos": { "h": 4, "w": 6, "x": 6, "y": 1 },
"id": 3,
"options": {
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"targets": [
{
"expr": "histogram_quantile(0.99, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P99",
"refId": "A"
}
],
"title": "Routing Latency P99",
"type": "gauge"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "thresholds" },
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "red", "value": 0.01 }
]
},
"unit": "percentunit"
}
},
"gridPos": { "h": 4, "w": 6, "x": 12, "y": 1 },
"id": 4,
"options": {
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"targets": [
{
"expr": "sum(rate(gateway_errors_total{job=\"gateway\"}[$__rate_interval])) / sum(rate(gateway_requests_total{job=\"gateway\"}[$__rate_interval]))",
"legendFormat": "Error Rate",
"refId": "A"
}
],
"title": "Error Rate",
"type": "gauge"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "thresholds" },
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 40000 },
{ "color": "red", "value": 50000 }
]
},
"unit": "reqps"
}
},
"gridPos": { "h": 4, "w": 6, "x": 18, "y": 1 },
"id": 5,
"options": {
"orientation": "auto",
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"targets": [
{
"expr": "sum(rate(gateway_requests_total{job=\"gateway\"}[$__rate_interval]))",
"legendFormat": "RPS",
"refId": "A"
}
],
"title": "Requests Per Second",
"type": "gauge"
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 },
"id": 10,
"panels": [],
"title": "Latency Distribution",
"type": "row"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"spanNulls": false
},
"unit": "ms"
}
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 },
"id": 11,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "histogram_quantile(0.50, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P50",
"refId": "A"
},
{
"expr": "histogram_quantile(0.90, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P90",
"refId": "B"
},
{
"expr": "histogram_quantile(0.95, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P95",
"refId": "C"
},
{
"expr": "histogram_quantile(0.99, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "P99",
"refId": "D"
}
],
"title": "Request Latency Percentiles (Overall)",
"type": "timeseries"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10
},
"unit": "ms"
}
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 },
"id": 12,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "histogram_quantile(0.99, sum(rate(gateway_request_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le, service))",
"legendFormat": "{{service}} P99",
"refId": "A"
}
],
"title": "P99 Latency by Service",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 },
"id": 20,
"panels": [],
"title": "Throughput & Rate Limiting",
"type": "row"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 15
},
"unit": "reqps"
}
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 },
"id": 21,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "sum(rate(gateway_requests_total{job=\"gateway\"}[$__rate_interval])) by (service)",
"legendFormat": "{{service}}",
"refId": "A"
},
{
"expr": "sum(rate(gateway_requests_total{job=\"gateway\"}[$__rate_interval]))",
"legendFormat": "Total",
"refId": "B"
}
],
"title": "RPS by Service",
"type": "timeseries"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "bars",
"lineWidth": 1,
"fillOpacity": 80
},
"unit": "short"
}
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 },
"id": 22,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "sum(rate(gateway_ratelimit_total{job=\"gateway\"}[$__rate_interval])) by (route)",
"legendFormat": "{{route}}",
"refId": "A"
}
],
"title": "Rate-Limited Requests by Route",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 },
"id": 30,
"panels": [],
"title": "Pipeline Breakdown",
"type": "row"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"stacking": { "mode": "none" }
},
"unit": "ms"
}
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 24 },
"id": 31,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "histogram_quantile(0.95, sum(rate(gateway_auth_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "Auth P95",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, sum(rate(gateway_routing_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "Routing P95",
"refId": "B"
},
{
"expr": "histogram_quantile(0.95, sum(rate(gateway_transport_duration_bucket{job=\"gateway\"}[$__rate_interval])) by (le))",
"legendFormat": "Transport P95",
"refId": "C"
}
],
"title": "P95 Latency Breakdown (Auth / Routing / Transport)",
"type": "timeseries"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 20,
"stacking": { "mode": "normal" }
},
"unit": "short"
}
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 24 },
"id": 32,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "sum(rate(gateway_errors_total{job=\"gateway\"}[$__rate_interval])) by (status)",
"legendFormat": "{{status}}",
"refId": "A"
}
],
"title": "Errors by Status Code",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 32 },
"id": 40,
"panels": [],
"title": "Connections & Resources",
"type": "row"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10
},
"unit": "short"
}
},
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 },
"id": 41,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "gateway_active_connections{job=\"gateway\"}",
"legendFormat": "Active Connections",
"refId": "A"
},
{
"expr": "gateway_registered_endpoints{job=\"gateway\"}",
"legendFormat": "Registered Endpoints",
"refId": "B"
}
],
"title": "Active Connections & Endpoints",
"type": "timeseries"
},
{
"datasource": "${datasource}",
"fieldConfig": {
"defaults": {
"color": { "mode": "palette-classic" },
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10
},
"unit": "decbytes"
}
},
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 33 },
"id": 42,
"options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } },
"targets": [
{
"expr": "process_resident_memory_bytes{job=\"gateway\"}",
"legendFormat": "Resident Memory",
"refId": "A"
},
{
"expr": "process_virtual_memory_bytes{job=\"gateway\"}",
"legendFormat": "Virtual Memory",
"refId": "B"
},
{
"expr": "dotnet_gc_heap_size_bytes{job=\"gateway\"}",
"legendFormat": "GC Heap",
"refId": "C"
}
],
"title": "Memory Usage",
"type": "timeseries"
}
],
"refresh": "10s",
"schemaVersion": 36,
"style": "dark",
"tags": ["stella-ops", "gateway", "performance", "k6"],
"templating": {
"list": [
{
"current": { "selected": false, "text": "Prometheus", "value": "Prometheus" },
"hide": 0,
"includeAll": false,
"multi": false,
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
}
]
},
"time": { "from": "now-1h", "to": "now" },
"timepicker": {},
"timezone": "utc",
"title": "Stella Ops Gateway — Performance Curve Modeling",
"uid": "stella-ops-gateway-performance",
"version": 1
}