{ "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 }