{ "annotations": { "list": [] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "links": [], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 100, "title": "API Gateway Auth", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "ops" }, "overrides": [ { "matcher": { "id": "byName", "options": "failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "success" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 1 }, "id": 1, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "rate(api_auth_requests_success[$interval])", "legendFormat": "success", "refId": "A" }, { "expr": "rate(api_auth_requests_failure[$interval])", "legendFormat": "failure", "refId": "B" }, { "expr": "rate(api_auth_requests_total[$interval])", "legendFormat": "total", "refId": "C" } ], "title": "Auth Request Rate (Success / Failure)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "bars", "fillOpacity": 50, "lineWidth": 1, "pointSize": 5, "showPoints": "never", "stacking": { "mode": "normal" } }, "unit": "ops" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 1 }, "id": 2, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "rate(api_auth_errors_expired_jwt[$interval])", "legendFormat": "expired_jwt", "refId": "A" }, { "expr": "rate(api_auth_errors_invalid_jwt[$interval])", "legendFormat": "invalid_jwt", "refId": "B" }, { "expr": "rate(api_auth_errors_missing_jwt[$interval])", "legendFormat": "missing_jwt", "refId": "C" }, { "expr": "rate(api_auth_errors_permission_denied[$interval])", "legendFormat": "permission_denied", "refId": "D" }, { "expr": "rate(api_auth_errors_rate_limited[$interval])", "legendFormat": "rate_limited", "refId": "E" } ], "title": "Auth Error Breakdown", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "\u00b5s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 16, "y": 1 }, "id": 3, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "histogram_quantile(0.50, rate(api_jwt_validation_duration_microseconds_bucket[$interval]))", "legendFormat": "p50", "refId": "A" }, { "expr": "histogram_quantile(0.95, rate(api_jwt_validation_duration_microseconds_bucket[$interval]))", "legendFormat": "p95", "refId": "B" }, { "expr": "histogram_quantile(0.99, rate(api_jwt_validation_duration_microseconds_bucket[$interval]))", "legendFormat": "p99", "refId": "C" } ], "title": "JWT Validation Latency", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 20, "y": 1 }, "id": 4, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "api_active_jwt_tokens", "legendFormat": "", "refId": "A" } ], "title": "Active JWT Tokens", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 9 }, "id": 101, "title": "API Gateway Security", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 500 }, { "color": "red", "value": 1000 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, "x": 0, "y": 10 }, "id": 5, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "api_rate_limiter_entries", "legendFormat": "", "refId": "A" } ], "title": "Rate Limiter Entries", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "max": 1, "min": 0, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, "x": 6, "y": 10 }, "id": 6, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "api_rbac_cache_hits / (api_rbac_cache_hits + api_rbac_cache_misses)", "legendFormat": "hit ratio", "refId": "A" } ], "title": "RBAC Cache Hit Ratio", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 10 }, { "color": "red", "value": 50 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, "x": 12, "y": 10 }, "id": 7, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "api_revoked_tokens_cached", "legendFormat": "", "refId": "A" } ], "title": "Revoked Tokens Cached", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "\u00b5s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, "x": 18, "y": 10 }, "id": 8, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "histogram_quantile(0.50, rate(api_mfa_verification_duration_microseconds_bucket[$interval]))", "legendFormat": "p50", "refId": "A" }, { "expr": "histogram_quantile(0.95, rate(api_mfa_verification_duration_microseconds_bucket[$interval]))", "legendFormat": "p95", "refId": "B" }, { "expr": "histogram_quantile(0.99, rate(api_mfa_verification_duration_microseconds_bucket[$interval]))", "legendFormat": "p99", "refId": "C" } ], "title": "MFA Verification Latency", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 16 }, "id": 102, "title": "API Gateway Routing", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "\u00b5s" }, "overrides": [] }, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 17 }, "id": 9, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "histogram_quantile(0.50, rate(api_routing_duration_microseconds_bucket[$interval]))", "legendFormat": "p50", "refId": "A" }, { "expr": "histogram_quantile(0.95, rate(api_routing_duration_microseconds_bucket[$interval]))", "legendFormat": "p95", "refId": "B" }, { "expr": "histogram_quantile(0.99, rate(api_routing_duration_microseconds_bucket[$interval]))", "legendFormat": "p99", "refId": "C" } ], "title": "Routing Duration p50/p95/p99", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "bars", "fillOpacity": 50, "lineWidth": 1, "pointSize": 5, "showPoints": "never", "stacking": { "mode": "normal" } }, "unit": "ops" }, "overrides": [] }, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 17 }, "id": 10, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "rate(api_config_updates_auth[$interval])", "legendFormat": "auth", "refId": "A" }, { "expr": "rate(api_config_updates_backend[$interval])", "legendFormat": "backend", "refId": "B" }, { "expr": "rate(api_config_updates_rate_limit[$interval])", "legendFormat": "rate_limit", "refId": "C" }, { "expr": "rate(api_config_updates_routing[$interval])", "legendFormat": "routing", "refId": "D" } ], "title": "Config Updates Rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "max": 1, "min": 0, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 17 }, "id": 11, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "api_config_cache_hits / (api_config_cache_hits + api_config_cache_misses)", "legendFormat": "config hit ratio", "refId": "A" }, { "expr": "api_jwt_cache_hits / (api_jwt_cache_hits + api_jwt_cache_misses)", "legendFormat": "jwt hit ratio", "refId": "B" } ], "title": "Config Cache Hit Ratio", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 24 }, "id": 103, "title": "API Gateway Events", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "ops" }, "overrides": [ { "matcher": { "id": "byName", "options": "success" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "failure" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 25 }, "id": 12, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "rate(api_notify_events_total[$interval])", "legendFormat": "total", "refId": "A" }, { "expr": "rate(api_notify_events_success[$interval])", "legendFormat": "success", "refId": "B" }, { "expr": "rate(api_notify_events_failure[$interval])", "legendFormat": "failure", "refId": "C" } ], "title": "Notify Events Rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 25 }, "id": 13, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "api_notify_listener_connected", "legendFormat": "", "refId": "A" } ], "title": "Notify Listener Connected", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "errors" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "reconnections" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 25 }, "id": 14, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "rate(api_notify_listener_errors[$interval])", "legendFormat": "errors", "refId": "A" }, { "expr": "rate(api_notify_listener_reconnections[$interval])", "legendFormat": "reconnections", "refId": "B" } ], "title": "Listener Errors & Reconnections", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 32 }, "id": 104, "title": "Logs (Loki)", "type": "row" }, { "datasource": { "type": "loki", "uid": "${DS_LOKI}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "bars", "fillOpacity": 50, "lineWidth": 1, "pointSize": 5, "showPoints": "never", "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "error" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "warn" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "info" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "debug" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 33 }, "id": 15, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "sum by (level) (count_over_time({namespace=\"foxhunt\"} | json [$__interval]))", "legendFormat": "{{level}}", "refId": "A" } ], "title": "Log Volume by Level", "type": "timeseries" }, { "datasource": { "type": "loki", "uid": "${DS_LOKI}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 20, "lineWidth": 2, "pointSize": 5, "showPoints": "never", "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byFrameRefID", "options": "A" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 33 }, "id": 16, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "sum by (app) (count_over_time({namespace=\"foxhunt\"} |= \"error\" [$__interval]))", "legendFormat": "{{app}}", "refId": "A" } ], "title": "Error Log Rate by App", "type": "timeseries" }, { "datasource": { "type": "loki", "uid": "${DS_LOKI}" }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 33 }, "id": 17, "options": { "enableLogDetails": true, "showCommonLabels": false, "showLabels": true, "showTime": true, "wrapLogMessage": true }, "targets": [ { "expr": "{namespace=\"foxhunt\"} |= \"error\" | pattern `<_> <_> <_> ` | regexp `msg=\"(?P[^\"]*)\"` | line_format `{{if .clean_msg}}{{.clean_msg}}{{else}}{{.content}}{{end}}` | drop content, clean_msg", "refId": "A" } ], "title": "Recent Errors", "type": "logs" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 41 }, "id": 105, "title": "Traces (Tempo)", "type": "row" }, { "datasource": { "type": "${DS_TEMPO}", "uid": "${DS_TEMPO}" }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 42 }, "id": 18, "options": {}, "targets": [ { "queryType": "traceqlSearch", "refId": "A" } ], "title": "Trace Search", "type": "traces" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 50 }, "id": 106, "title": "Prometheus Health", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "fixedColor": "text", "mode": "fixed" }, "custom": { "align": "auto", "cellOptions": { "type": "color-text" }, "inspect": false }, "mappings": [ { "options": { "0": { "color": "red", "text": "DOWN" }, "1": { "color": "green", "text": "UP" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "green", "value": 1 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Value" }, "properties": [ { "id": "custom.cellOptions", "value": { "type": "color-background" } }, { "id": "custom.width", "value": 80 } ] } ] }, "gridPos": { "h": 8, "w": 6, "x": 0, "y": 51 }, "id": 19, "options": { "showHeader": true, "sortBy": [ { "desc": false, "displayName": "Value" } ] }, "targets": [ { "expr": "up", "format": "table", "instant": true, "legendFormat": "{{job}}", "refId": "A" } ], "title": "Scrape Targets Up/Down", "transformations": [ { "id": "organize", "options": { "excludeByName": { "Time": true, "__name__": true }, "renameByName": { "Value": "Status", "instance": "Instance", "job": "Job" } } } ], "type": "table" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisLabel": "", "drawStyle": "line", "fillOpacity": 10, "lineWidth": 1, "pointSize": 5, "showPoints": "auto", "stacking": { "mode": "none" } }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 6, "y": 51 }, "id": 20, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "expr": "scrape_duration_seconds", "legendFormat": "{{job}}", "refId": "A" } ], "title": "Scrape Duration by Job", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 50000 }, { "color": "red", "value": 100000 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 12, "y": 51 }, "id": 21, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "prometheus_tsdb_head_series", "legendFormat": "", "refId": "A" } ], "title": "TSDB Head Series", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1073741824 }, { "color": "red", "value": 5368709120 } ] }, "unit": "decbytes" }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 18, "y": 51 }, "id": 22, "options": { "colorMode": "background", "graphMode": "area", "reduceOptions": { "calcs": [ "lastNotNull" ] } }, "targets": [ { "expr": "prometheus_tsdb_storage_blocks_bytes", "legendFormat": "", "refId": "A" } ], "title": "TSDB Storage Bytes", "type": "stat" } ], "refresh": "15s", "schemaVersion": 39, "tags": [ "foxhunt", "observability", "api-gateway", "logs", "traces" ], "templating": { "list": [ { "auto": true, "auto_count": 30, "auto_min": "10s", "current": { "selected": false, "text": "auto", "value": "$__auto_interval_interval" }, "hide": 0, "label": "Interval", "name": "interval", "options": [ { "selected": false, "text": "1m", "value": "1m" }, { "selected": false, "text": "5m", "value": "5m" }, { "selected": false, "text": "15m", "value": "15m" }, { "selected": false, "text": "30m", "value": "30m" }, { "selected": false, "text": "1h", "value": "1h" } ], "query": "1m,5m,15m,30m,1h", "type": "interval" } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Observability & API Gateway", "uid": "foxhunt-observability", "__inputs": [ { "name": "DS_PROMETHEUS", "type": "datasource", "pluginId": "prometheus" }, { "name": "DS_LOKI", "type": "datasource", "pluginId": "loki" }, { "name": "DS_TEMPO", "type": "datasource", "pluginId": "${DS_TEMPO}" } ] }