trails/infrastructure/grafana/dashboards/infrastructure.json
Ullrich Schäfer d45d6e3eaf
Unwrap dashboard JSON for Grafana provisioning
Grafana file-based provisioning expects flat dashboard JSON, not the
API format with a "dashboard" wrapper. The 4 wrapped dashboards were
silently failing to load — only business.json (already flat) worked.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 22:18:06 +02:00

108 lines
2 KiB
JSON

{
"title": "Infrastructure",
"uid": "trails-infra",
"annotations": {
"list": [
{
"name": "Deploys",
"enable": true,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"iconColor": "rgba(0, 211, 255, 1)",
"target": {
"limit": 100,
"matchAny": false,
"tags": [
"deploy"
],
"type": "tags"
}
}
]
},
"timezone": "browser",
"refresh": "30s",
"panels": [
{
"title": "Process Memory (RSS)",
"type": "timeseries",
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"targets": [
{
"expr": "process_resident_memory_bytes",
"legendFormat": "{{job}}"
}
],
"fieldConfig": {
"defaults": {
"unit": "bytes"
}
}
},
{
"title": "CPU Usage",
"type": "timeseries",
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"targets": [
{
"expr": "rate(process_cpu_seconds_total[5m])",
"legendFormat": "{{job}}"
}
],
"fieldConfig": {
"defaults": {
"unit": "percentunit"
}
}
},
{
"title": "Event Loop Lag",
"type": "timeseries",
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"targets": [
{
"expr": "nodejs_eventloop_lag_seconds",
"legendFormat": "{{job}}"
}
],
"fieldConfig": {
"defaults": {
"unit": "s"
}
}
},
{
"title": "Open File Descriptors",
"type": "timeseries",
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"targets": [
{
"expr": "process_open_fds",
"legendFormat": "{{job}}"
}
]
}
]
}