Spaces:
Sleeping
Sleeping
| { | |
| "annotations": { | |
| "list": [] | |
| }, | |
| "editable": true, | |
| "fiscalYearStartMonth": 0, | |
| "graphTooltip": 0, | |
| "id": null, | |
| "links": [], | |
| "liveNow": false, | |
| "panels": [ | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "palette-classic" | |
| }, | |
| "custom": { | |
| "axisCenteredZero": false, | |
| "axisColorMode": "text", | |
| "axisLabel": "", | |
| "axisPlacement": "auto", | |
| "barAlignment": 0, | |
| "drawStyle": "line", | |
| "fillOpacity": 10, | |
| "gradientMode": "none", | |
| "hideFrom": { | |
| "legend": false, | |
| "tooltip": false, | |
| "viz": false | |
| }, | |
| "lineInterpolation": "linear", | |
| "lineWidth": 1, | |
| "pointSize": 5, | |
| "scaleDistribution": { | |
| "type": "linear" | |
| }, | |
| "showPoints": "auto", | |
| "spanNulls": false, | |
| "stacking": { | |
| "group": "A", | |
| "mode": "none" | |
| }, | |
| "thresholdsStyle": { | |
| "mode": "off" | |
| } | |
| }, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| }, | |
| { | |
| "color": "red", | |
| "value": 80 | |
| } | |
| ] | |
| }, | |
| "unit": "reqps" | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 8, | |
| "w": 12, | |
| "x": 0, | |
| "y": 0 | |
| }, | |
| "id": 1, | |
| "options": { | |
| "legend": { | |
| "calcs": [], | |
| "displayMode": "list", | |
| "placement": "bottom", | |
| "showLegend": true | |
| }, | |
| "tooltip": { | |
| "mode": "single", | |
| "sort": "none" | |
| } | |
| }, | |
| "targets": [ | |
| { | |
| "expr": "rate(http_requests_total{app=\"voiceforge-backend\"}[5m])", | |
| "legendFormat": "{{method}} {{endpoint}}", | |
| "refId": "A" | |
| } | |
| ], | |
| "title": "Request Rate", | |
| "type": "timeseries" | |
| }, | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "palette-classic" | |
| }, | |
| "custom": {}, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| }, | |
| { | |
| "color": "yellow", | |
| "value": 500 | |
| }, | |
| { | |
| "color": "red", | |
| "value": 1000 | |
| } | |
| ] | |
| }, | |
| "unit": "ms" | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 8, | |
| "w": 12, | |
| "x": 12, | |
| "y": 0 | |
| }, | |
| "id": 2, | |
| "options": {}, | |
| "targets": [ | |
| { | |
| "expr": "histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{app=\"voiceforge-backend\"}[5m]))*1000", | |
| "legendFormat": "p95 Latency", | |
| "refId": "A" | |
| }, | |
| { | |
| "expr": "histogram_quantile(0.99, rate(http_request_duration_seconds_bucket{app=\"voiceforge-backend\"}[5m]))*1000", | |
| "legendFormat": "p99 Latency", | |
| "refId": "B" | |
| } | |
| ], | |
| "title": "Request Latency (p95/p99)", | |
| "type": "timeseries" | |
| }, | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "thresholds" | |
| }, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| }, | |
| { | |
| "color": "red", | |
| "value": 1 | |
| } | |
| ] | |
| }, | |
| "unit": "short" | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 4, | |
| "w": 6, | |
| "x": 0, | |
| "y": 8 | |
| }, | |
| "id": 3, | |
| "options": { | |
| "colorMode": "value", | |
| "graphMode": "area", | |
| "justifyMode": "auto", | |
| "orientation": "auto", | |
| "reduceOptions": { | |
| "calcs": [ | |
| "lastNotNull" | |
| ], | |
| "fields": "", | |
| "values": false | |
| }, | |
| "textMode": "auto" | |
| }, | |
| "targets": [ | |
| { | |
| "expr": "sum(rate(http_requests_total{app=\"voiceforge-backend\",status=~\"5..\"}[5m]))", | |
| "legendFormat": "Errors", | |
| "refId": "A" | |
| } | |
| ], | |
| "title": "Error Rate (5xx)", | |
| "type": "stat" | |
| }, | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "thresholds" | |
| }, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| }, | |
| { | |
| "color": "yellow", | |
| "value": 70 | |
| }, | |
| { | |
| "color": "red", | |
| "value": 90 | |
| } | |
| ] | |
| }, | |
| "unit": "percent" | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 4, | |
| "w": 6, | |
| "x": 6, | |
| "y": 8 | |
| }, | |
| "id": 4, | |
| "options": {}, | |
| "targets": [ | |
| { | |
| "expr": "avg(container_cpu_usage_seconds_total{pod=~\"voiceforge-.*\"})", | |
| "legendFormat": "CPU Usage", | |
| "refId": "A" | |
| } | |
| ], | |
| "title": "CPU Usage", | |
| "type": "gauge" | |
| }, | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "thresholds" | |
| }, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| }, | |
| { | |
| "color": "yellow", | |
| "value": 70 | |
| }, | |
| { | |
| "color": "red", | |
| "value": 90 | |
| } | |
| ] | |
| }, | |
| "unit": "percent" | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 4, | |
| "w": 6, | |
| "x": 12, | |
| "y": 8 | |
| }, | |
| "id": 5, | |
| "options": {}, | |
| "targets": [ | |
| { | |
| "expr": "avg(container_memory_usage_bytes{pod=~\"voiceforge-.*\"}) / avg(container_spec_memory_limit_bytes{pod=~\"voiceforge-.*\"}) * 100", | |
| "legendFormat": "Memory Usage", | |
| "refId": "A" | |
| } | |
| ], | |
| "title": "Memory Usage", | |
| "type": "gauge" | |
| }, | |
| { | |
| "datasource": { | |
| "type": "prometheus", | |
| "uid": "prometheus" | |
| }, | |
| "fieldConfig": { | |
| "defaults": { | |
| "color": { | |
| "mode": "thresholds" | |
| }, | |
| "mappings": [], | |
| "thresholds": { | |
| "mode": "absolute", | |
| "steps": [ | |
| { | |
| "color": "green", | |
| "value": null | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "gridPos": { | |
| "h": 4, | |
| "w": 6, | |
| "x": 18, | |
| "y": 8 | |
| }, | |
| "id": 6, | |
| "options": {}, | |
| "targets": [ | |
| { | |
| "expr": "sum(kube_pod_status_phase{namespace=\"voiceforge\",phase=\"Running\"})", | |
| "legendFormat": "Running Pods", | |
| "refId": "A" | |
| } | |
| ], | |
| "title": "Running Pods", | |
| "type": "stat" | |
| } | |
| ], | |
| "refresh": "30s", | |
| "schemaVersion": 38, | |
| "style": "dark", | |
| "tags": [ | |
| "voiceforge", | |
| "backend", | |
| "api" | |
| ], | |
| "templating": { | |
| "list": [] | |
| }, | |
| "time": { | |
| "from": "now-1h", | |
| "to": "now" | |
| }, | |
| "timepicker": {}, | |
| "timezone": "", | |
| "title": "VoiceForge Backend Dashboard", | |
| "uid": "voiceforge-backend", | |
| "version": 1, | |
| "weekStart": "" | |
| } |