grafana: clarify Synapse panels in overview#4813
Merged
Merged
Conversation
Both panels in the overview dashboard were titled "Synapse", making it ambiguous which was which, and the CPU/Mem bargauge had no panel-level link so its header chain icon was missing. - Rename the events/min timeseries to "Matrix Events". - Rename the CPU/Mem bargauge to "Synapse Process" and add the missing panel-level link to the Synapse dashboard (/d/000000012). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Observability diff (vs staging)diff --git a/tmp/remote-canon.46e17e/dashboards/boxel-status/overview.json b/tmp/committed-canon.uznpoq/dashboards/boxel-status/overview.json
index 686ebd6..4c5a188 100644
--- a/tmp/remote-canon.46e17e/dashboards/boxel-status/overview.json
+++ b/tmp/committed-canon.uznpoq/dashboards/boxel-status/overview.json
@@ -721,7 +721,7 @@
"refId": "A"
}
],
- "title": "Synapse",
+ "title": "Matrix Events",
"type": "timeseries"
},
{
@@ -907,20 +907,13 @@
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS CPU and memory utilisation for `boxel-prerender-server-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
+ "description": "ECS task count for `boxel-realm-server-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
- "decimals": 1,
- "links": [
- {
- "targetBlank": false,
- "title": "Open Prerender Server dashboard",
- "url": "/d/boxel-svc-prerender-server"
- }
- ],
+ "decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -941,11 +934,7 @@
"properties": [
{
"id": "displayName",
- "value": "CPU"
- },
- {
- "id": "unit",
- "value": "percent"
+ "value": " "
},
{
"id": "thresholds",
@@ -953,19 +942,11 @@
"mode": "absolute",
"steps": [
{
- "color": "transparent"
+ "color": "red"
},
{
"color": "green",
- "value": 0
- },
- {
- "color": "yellow",
- "value": 70
- },
- {
- "color": "red",
- "value": 90
+ "value": 1
}
]
}
@@ -980,52 +961,23 @@
"properties": [
{
"id": "displayName",
- "value": "Mem"
- },
- {
- "id": "unit",
- "value": "percent"
- },
- {
- "id": "thresholds",
- "value": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent"
- },
- {
- "color": "green",
- "value": 0
- },
- {
- "color": "yellow",
- "value": 70
- },
- {
- "color": "red",
- "value": 90
- }
- ]
- }
+ "value": "/"
}
]
}
]
},
"gridPos": {
- "h": 4,
+ "h": 3,
"w": 4,
- "x": 4,
- "y": 16
+ "x": 0,
+ "y": 20
},
- "id": 14,
+ "id": 23,
"options": {
- "displayMode": "gradient",
- "maxVizHeight": 300,
- "minVizHeight": 10,
- "minVizWidth": 0,
- "namePlacement": "auto",
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "center",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
@@ -1034,9 +986,8 @@
"fields": "",
"values": false
},
- "showUnfilled": true,
- "sizing": "auto",
- "valueMode": "color"
+ "textMode": "value_and_name",
+ "wideLayout": true
},
"pluginVersion": "12.4.3",
"targets": [
@@ -1047,16 +998,16 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-server-${env}"
+ "ServiceName": "boxel-realm-server-${env}"
},
"metricEditorMode": 0,
- "metricName": "CPUUtilization",
+ "metricName": "RunningTaskCount",
"metricQueryType": 0,
- "namespace": "AWS/ECS",
+ "namespace": "ECS/ContainerInsights",
"period": "",
"refId": "A",
"region": "default",
- "statistic": "Average"
+ "statistic": "Maximum"
},
{
"datasource": {
@@ -1065,27 +1016,27 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-server-${env}"
+ "ServiceName": "boxel-realm-server-${env}"
},
"metricEditorMode": 0,
- "metricName": "MemoryUtilization",
+ "metricName": "DesiredTaskCount",
"metricQueryType": 0,
- "namespace": "AWS/ECS",
+ "namespace": "ECS/ContainerInsights",
"period": "",
"refId": "B",
"region": "default",
- "statistic": "Average"
+ "statistic": "Maximum"
}
],
- "title": "Prerender",
- "type": "bargauge"
+ "title": "Tasks",
+ "type": "stat"
},
{
"datasource": {
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS CPU and memory utilisation for `boxel-prerender-manager-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
+ "description": "ECS CPU and memory utilisation for `boxel-prerender-server-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1095,8 +1046,8 @@
"links": [
{
"targetBlank": false,
- "title": "Open Prerender Manager dashboard",
- "url": "/d/boxel-svc-prerender-manager"
+ "title": "Open Prerender Server dashboard",
+ "url": "/d/boxel-svc-prerender-server"
}
],
"mappings": [],
@@ -1194,10 +1145,10 @@
"gridPos": {
"h": 4,
"w": 4,
- "x": 8,
+ "x": 4,
"y": 16
},
- "id": 15,
+ "id": 14,
"options": {
"displayMode": "gradient",
"maxVizHeight": 300,
@@ -1225,7 +1176,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-manager-${env}"
+ "ServiceName": "boxel-prerender-server-${env}"
},
"metricEditorMode": 0,
"metricName": "CPUUtilization",
@@ -1243,7 +1194,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-manager-${env}"
+ "ServiceName": "boxel-prerender-server-${env}"
},
"metricEditorMode": 0,
"metricName": "MemoryUtilization",
@@ -1255,7 +1206,7 @@
"statistic": "Average"
}
],
- "title": "Prerender Mgr",
+ "title": "Prerender",
"type": "bargauge"
},
{
@@ -1263,20 +1214,13 @@
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS CPU and memory utilisation for `boxel-worker-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
+ "description": "ECS task count for `boxel-prerender-server-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
- "decimals": 1,
- "links": [
- {
- "targetBlank": false,
- "title": "Open Worker dashboard",
- "url": "/d/boxel-svc-worker"
- }
- ],
+ "decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -1297,11 +1241,7 @@
"properties": [
{
"id": "displayName",
- "value": "CPU"
- },
- {
- "id": "unit",
- "value": "percent"
+ "value": " "
},
{
"id": "thresholds",
@@ -1309,19 +1249,11 @@
"mode": "absolute",
"steps": [
{
- "color": "transparent"
+ "color": "red"
},
{
"color": "green",
- "value": 0
- },
- {
- "color": "yellow",
- "value": 70
- },
- {
- "color": "red",
- "value": 90
+ "value": 1
}
]
}
@@ -1336,52 +1268,23 @@
"properties": [
{
"id": "displayName",
- "value": "Mem"
- },
- {
- "id": "unit",
- "value": "percent"
- },
- {
- "id": "thresholds",
- "value": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent"
- },
- {
- "color": "green",
- "value": 0
- },
- {
- "color": "yellow",
- "value": 70
- },
- {
- "color": "red",
- "value": 90
- }
- ]
- }
+ "value": "/"
}
]
}
]
},
"gridPos": {
- "h": 4,
+ "h": 3,
"w": 4,
- "x": 12,
- "y": 16
+ "x": 4,
+ "y": 20
},
- "id": 16,
+ "id": 24,
"options": {
- "displayMode": "gradient",
- "maxVizHeight": 300,
- "minVizHeight": 10,
- "minVizWidth": 0,
- "namePlacement": "auto",
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "center",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
@@ -1390,9 +1293,8 @@
"fields": "",
"values": false
},
- "showUnfilled": true,
- "sizing": "auto",
- "valueMode": "color"
+ "textMode": "value_and_name",
+ "wideLayout": true
},
"pluginVersion": "12.4.3",
"targets": [
@@ -1403,16 +1305,16 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-worker-${env}"
+ "ServiceName": "boxel-prerender-server-${env}"
},
"metricEditorMode": 0,
- "metricName": "CPUUtilization",
+ "metricName": "RunningTaskCount",
"metricQueryType": 0,
- "namespace": "AWS/ECS",
+ "namespace": "ECS/ContainerInsights",
"period": "",
"refId": "A",
"region": "default",
- "statistic": "Average"
+ "statistic": "Maximum"
},
{
"datasource": {
@@ -1421,27 +1323,27 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-worker-${env}"
+ "ServiceName": "boxel-prerender-server-${env}"
},
"metricEditorMode": 0,
- "metricName": "MemoryUtilization",
+ "metricName": "DesiredTaskCount",
"metricQueryType": 0,
- "namespace": "AWS/ECS",
+ "namespace": "ECS/ContainerInsights",
"period": "",
"refId": "B",
"region": "default",
- "statistic": "Average"
+ "statistic": "Maximum"
}
],
- "title": "Worker",
- "type": "bargauge"
+ "title": "Tasks",
+ "type": "stat"
},
{
"datasource": {
- "type": "prometheus",
- "uid": "bes7ustjf8w74b"
+ "type": "cloudwatch",
+ "uid": "cef5x9o3yzawwf"
},
- "description": "Synapse process metrics scraped from /\\_synapse/metrics via the synapse-prometheus datasource (local Prometheus locally; AMP in staging/production). CPU is rate over 5m as a percentage of one core; Mem is process_resident_memory_bytes.",
+ "description": "ECS CPU and memory utilisation for `boxel-prerender-manager-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1451,8 +1353,8 @@
"links": [
{
"targetBlank": false,
- "title": "Open Synapse dashboard",
- "url": "/d/000000012"
+ "title": "Open Prerender Manager dashboard",
+ "url": "/d/boxel-svc-prerender-manager"
}
],
"mappings": [],
@@ -1518,7 +1420,7 @@
},
{
"id": "unit",
- "value": "decbytes"
+ "value": "percent"
},
{
"id": "thresholds",
@@ -1531,13 +1433,17 @@
{
"color": "green",
"value": 0
+ },
+ {
+ "color": "yellow",
+ "value": 70
+ },
+ {
+ "color": "red",
+ "value": 90
}
]
}
- },
- {
- "id": "max",
- "value": 8589934592
}
]
}
@@ -1546,10 +1452,10 @@
"gridPos": {
"h": 4,
"w": 4,
- "x": 16,
+ "x": 8,
"y": 16
},
- "id": 17,
+ "id": 15,
"options": {
"displayMode": "gradient",
"maxVizHeight": 300,
@@ -1572,108 +1478,50 @@
"targets": [
{
"datasource": {
- "type": "prometheus",
- "uid": "bes7ustjf8w74b"
- },
- "expr": "rate(process_cpu_seconds_total{job=\"synapse\"}[5m]) * 100",
- "instant": true,
- "legendFormat": "CPU",
- "refId": "A"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "bes7ustjf8w74b"
- },
- "expr": "process_resident_memory_bytes{job=\"synapse\"}",
- "instant": true,
- "legendFormat": "Mem",
- "refId": "B"
- }
- ],
- "title": "Synapse",
- "type": "bargauge"
- },
- {
- "datasource": {
- "type": "grafana-postgresql-datasource",
- "uid": "cef5v5sl9k7i8f"
- },
- "description": "Boxel application database transaction rate (xact_commit + xact_rollback) averaged since the postmaster started. Not a rolling window — recent spikes will be smoothed. Drill into the DB-specific dashboard for detail.",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
+ "type": "cloudwatch",
+ "uid": "cef5x9o3yzawwf"
},
- "decimals": 0,
- "links": [
- {
- "targetBlank": false,
- "title": "Open Database dashboard",
- "url": "/d/boxeldatabase1"
- }
- ],
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent"
- },
- {
- "color": "green",
- "value": 0
- }
- ]
+ "dimensions": {
+ "ClusterName": "${env}",
+ "ServiceName": "boxel-prerender-manager-${env}"
},
- "unit": "short"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 4,
- "x": 20,
- "y": 16
- },
- "id": 18,
- "options": {
- "colorMode": "background_solid",
- "graphMode": "none",
- "justifyMode": "auto",
- "orientation": "vertical",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
+ "metricEditorMode": 0,
+ "metricName": "CPUUtilization",
+ "metricQueryType": 0,
+ "namespace": "AWS/ECS",
+ "period": "",
+ "refId": "A",
+ "region": "default",
+ "statistic": "Average"
},
- "textMode": "value_and_name"
- },
- "pluginVersion": "12.4.3",
- "targets": [
{
"datasource": {
- "type": "grafana-postgresql-datasource",
- "uid": "cef5v5sl9k7i8f"
+ "type": "cloudwatch",
+ "uid": "cef5x9o3yzawwf"
},
- "editorMode": "code",
- "format": "table",
- "rawQuery": true,
- "rawSql": "SELECT 60.0 * (xact_commit + xact_rollback) / NULLIF(EXTRACT(EPOCH FROM (NOW() - pg_postmaster_start_time())), 0) AS \"txn/min\" FROM pg_stat_database WHERE datname = 'boxel';",
- "refId": "A"
+ "dimensions": {
+ "ClusterName": "${env}",
+ "ServiceName": "boxel-prerender-manager-${env}"
+ },
+ "metricEditorMode": 0,
+ "metricName": "MemoryUtilization",
+ "metricQueryType": 0,
+ "namespace": "AWS/ECS",
+ "period": "",
+ "refId": "B",
+ "region": "default",
+ "statistic": "Average"
}
],
- "title": "Postgres DB",
- "type": "stat"
+ "title": "Prerender Mgr",
+ "type": "bargauge"
},
{
"datasource": {
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS task count for `boxel-realm-server-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
+ "description": "ECS task count for `boxel-prerender-manager-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1736,10 +1584,10 @@
"gridPos": {
"h": 3,
"w": 4,
- "x": 0,
+ "x": 8,
"y": 20
},
- "id": 23,
+ "id": 25,
"options": {
"colorMode": "value",
"graphMode": "none",
@@ -1764,7 +1612,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-realm-server-${env}"
+ "ServiceName": "boxel-prerender-manager-${env}"
},
"metricEditorMode": 0,
"metricName": "RunningTaskCount",
@@ -1782,7 +1630,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-realm-server-${env}"
+ "ServiceName": "boxel-prerender-manager-${env}"
},
"metricEditorMode": 0,
"metricName": "DesiredTaskCount",
@@ -1802,13 +1650,20 @@
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS task count for `boxel-prerender-server-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
+ "description": "ECS CPU and memory utilisation for `boxel-worker-${env}` on cluster `${env}` — averages over the panel refresh window. Task counts (Run / Need) appear in the stat row below this bargauge. Locally these show 'No data' — CloudWatch is staging/production only.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
- "decimals": 0,
+ "decimals": 1,
+ "links": [
+ {
+ "targetBlank": false,
+ "title": "Open Worker dashboard",
+ "url": "/d/boxel-svc-worker"
+ }
+ ],
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -1829,7 +1684,11 @@
"properties": [
{
"id": "displayName",
- "value": " "
+ "value": "CPU"
+ },
+ {
+ "id": "unit",
+ "value": "percent"
},
{
"id": "thresholds",
@@ -1837,11 +1696,19 @@
"mode": "absolute",
"steps": [
{
- "color": "red"
+ "color": "transparent"
},
{
"color": "green",
- "value": 1
+ "value": 0
+ },
+ {
+ "color": "yellow",
+ "value": 70
+ },
+ {
+ "color": "red",
+ "value": 90
}
]
}
@@ -1856,23 +1723,52 @@
"properties": [
{
"id": "displayName",
- "value": "/"
+ "value": "Mem"
+ },
+ {
+ "id": "unit",
+ "value": "percent"
+ },
+ {
+ "id": "thresholds",
+ "value": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "transparent"
+ },
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "yellow",
+ "value": 70
+ },
+ {
+ "color": "red",
+ "value": 90
+ }
+ ]
+ }
}
]
}
]
},
"gridPos": {
- "h": 3,
+ "h": 4,
"w": 4,
- "x": 4,
- "y": 20
+ "x": 12,
+ "y": 16
},
- "id": 24,
+ "id": 16,
"options": {
- "colorMode": "value",
- "graphMode": "none",
- "justifyMode": "center",
+ "displayMode": "gradient",
+ "maxVizHeight": 300,
+ "minVizHeight": 10,
+ "minVizWidth": 0,
+ "namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
@@ -1881,8 +1777,9 @@
"fields": "",
"values": false
},
- "textMode": "value_and_name",
- "wideLayout": true
+ "showUnfilled": true,
+ "sizing": "auto",
+ "valueMode": "color"
},
"pluginVersion": "12.4.3",
"targets": [
@@ -1893,16 +1790,16 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-server-${env}"
+ "ServiceName": "boxel-worker-${env}"
},
"metricEditorMode": 0,
- "metricName": "RunningTaskCount",
+ "metricName": "CPUUtilization",
"metricQueryType": 0,
- "namespace": "ECS/ContainerInsights",
+ "namespace": "AWS/ECS",
"period": "",
"refId": "A",
"region": "default",
- "statistic": "Maximum"
+ "statistic": "Average"
},
{
"datasource": {
@@ -1911,27 +1808,27 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-server-${env}"
+ "ServiceName": "boxel-worker-${env}"
},
"metricEditorMode": 0,
- "metricName": "DesiredTaskCount",
+ "metricName": "MemoryUtilization",
"metricQueryType": 0,
- "namespace": "ECS/ContainerInsights",
+ "namespace": "AWS/ECS",
"period": "",
"refId": "B",
"region": "default",
- "statistic": "Maximum"
+ "statistic": "Average"
}
],
- "title": "Tasks",
- "type": "stat"
+ "title": "Worker",
+ "type": "bargauge"
},
{
"datasource": {
"type": "cloudwatch",
"uid": "cef5x9o3yzawwf"
},
- "description": "ECS task count for `boxel-prerender-manager-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
+ "description": "ECS task count for `boxel-worker-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1994,10 +1891,10 @@
"gridPos": {
"h": 3,
"w": 4,
- "x": 8,
+ "x": 12,
"y": 20
},
- "id": 25,
+ "id": 26,
"options": {
"colorMode": "value",
"graphMode": "none",
@@ -2022,7 +1919,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-manager-${env}"
+ "ServiceName": "boxel-worker-${env}"
},
"metricEditorMode": 0,
"metricName": "RunningTaskCount",
@@ -2040,7 +1937,7 @@
},
"dimensions": {
"ClusterName": "${env}",
- "ServiceName": "boxel-prerender-manager-${env}"
+ "ServiceName": "boxel-worker-${env}"
},
"metricEditorMode": 0,
"metricName": "DesiredTaskCount",
@@ -2057,16 +1954,23 @@
},
{
"datasource": {
- "type": "cloudwatch",
- "uid": "cef5x9o3yzawwf"
+ "type": "prometheus",
+ "uid": "bes7ustjf8w74b"
},
- "description": "ECS task count for `boxel-worker-${env}` — `Run` is RunningTaskCount, `Need` is DesiredTaskCount (both from ECS/ContainerInsights, Maximum over the panel refresh window). Run < Need means the service is under-scaled or tasks are crashing.",
+ "description": "Synapse process metrics scraped from /\\_synapse/metrics via the synapse-prometheus datasource (local Prometheus locally; AMP in staging/production). CPU is rate over 5m as a percentage of one core; Mem is process_resident_memory_bytes.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
- "decimals": 0,
+ "decimals": 1,
+ "links": [
+ {
+ "targetBlank": false,
+ "title": "Open Synapse dashboard",
+ "url": "/d/000000012"
+ }
+ ],
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -2087,7 +1991,11 @@
"properties": [
{
"id": "displayName",
- "value": " "
+ "value": "CPU"
+ },
+ {
+ "id": "unit",
+ "value": "percent"
},
{
"id": "thresholds",
@@ -2095,11 +2003,19 @@
"mode": "absolute",
"steps": [
{
- "color": "red"
+ "color": "transparent"
},
{
"color": "green",
- "value": 1
+ "value": 0
+ },
+ {
+ "color": "yellow",
+ "value": 70
+ },
+ {
+ "color": "red",
+ "value": 90
}
]
}
@@ -2114,23 +2030,57 @@
"properties": [
{
"id": "displayName",
- "value": "/"
+ "value": "Mem"
+ },
+ {
+ "id": "unit",
+ "value": "decbytes"
+ },
+ {
+ "id": "thresholds",
+ "value": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "transparent"
+ },
+ {
+ "color": "green",
+ "value": 0
+ }
+ ]
+ }
+ },
+ {
+ "id": "max",
+ "value": 8589934592
}
]
}
]
},
"gridPos": {
- "h": 3,
+ "h": 4,
"w": 4,
- "x": 12,
- "y": 20
+ "x": 16,
+ "y": 16
},
- "id": 26,
+ "id": 17,
+ "links": [
+ {
+ "icon": "external link",
+ "targetBlank": false,
+ "title": "Open Synapse dashboard",
+ "type": "link",
+ "url": "/d/000000012"
+ }
+ ],
"options": {
- "colorMode": "value",
- "graphMode": "none",
- "justifyMode": "center",
+ "displayMode": "gradient",
+ "maxVizHeight": 300,
+ "minVizHeight": 10,
+ "minVizWidth": 0,
+ "namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
@@ -2139,51 +2089,139 @@
"fields": "",
"values": false
},
- "textMode": "value_and_name",
- "wideLayout": true
+ "showUnfilled": true,
+ "sizing": "auto",
+ "valueMode": "color"
},
"pluginVersion": "12.4.3",
"targets": [
{
"datasource": {
- "type": "cloudwatch",
- "uid": "cef5x9o3yzawwf"
- },
- "dimensions": {
- "ClusterName": "${env}",
- "ServiceName": "boxel-worker-${env}"
+ "type": "prometheus",
+ "uid": "bes7ustjf8w74b"
},
- "metricEditorMode": 0,
- "metricName": "RunningTaskCount",
- "metricQueryType": 0,
- "namespace": "ECS/ContainerInsights",
- "period": "",
- "refId": "A",
- "region": "default",
- "statistic": "Maximum"
+ "expr": "rate(process_cpu_seconds_total{job=\"synapse\"}[5m]) * 100",
+ "instant": true,
+ "legendFormat": "CPU",
+ "refId": "A"
},
{
"datasource": {
- "type": "cloudwatch",
- "uid": "cef5x9o3yzawwf"
+ "type": "prometheus",
+ "uid": "bes7ustjf8w74b"
},
- "dimensions": {
- "ClusterName": "${env}",
- "ServiceName": "boxel-worker-${env}"
+ "expr": "process_resident_memory_bytes{job=\"synapse\"}",
+ "instant": true,
+ "legendFormat": "Mem",
+ "refId": "B"
+ }
+ ],
+ "title": "Synapse Process",
+ "type": "bargauge"
+ },
+ {
+ "datasource": {
+ "type": "grafana-postgresql-datasource",
+ "uid": "cef5v5sl9k7i8f"
+ },
+ "description": "Boxel application database transaction rate (xact_commit + xact_rollback) averaged since the postmaster started. Not a rolling window — recent spikes will be smoothed. Drill into the DB-specific dashboard for detail.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
},
- "metricEditorMode": 0,
- "metricName": "DesiredTaskCount",
- "metricQueryType": 0,
- "namespace": "ECS/ContainerInsights",
- "period": "",
- "refId": "B",
- "region": "default",
- "statistic": "Maximum"
+ "decimals": 0,
+ "links": [
+ {
+ "targetBlank": false,
+ "title": "Open Database dashboard",
+ "url": "/d/boxeldatabase1"
+ }
+ ],
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "transparent"
+ },
+ {
+ "color": "green",
+ "value": 0
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 16
+ },
+ "id": 18,
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "vertical",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value_and_name"
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "grafana-postgresql-datasource",
+ "uid": "cef5v5sl9k7i8f"
+ },
+ "editorMode": "code",
+ "format": "table",
+ "rawQuery": true,
+ "rawSql": "SELECT 60.0 * (xact_commit + xact_rollback) / NULLIF(EXTRACT(EPOCH FROM (NOW() - pg_postmaster_start_time())), 0) AS \"txn/min\" FROM pg_stat_database WHERE datname = 'boxel';",
+ "refId": "A"
}
],
- "title": "Tasks",
+ "title": "Postgres DB",
"type": "stat"
},
+ {
+ "description": "All firing and pending Grafana alert rules. Drill into a rule for details and silences. Replaces the Worker Status alertlist (which was a single-panel dashboard).",
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 33
+ },
+ "id": 6,
+ "options": {
+ "alertInstanceLabelFilter": "",
+ "alertName": "",
+ "dashboardAlerts": false,
+ "groupBy": [],
+ "groupMode": "default",
+ "maxItems": 30,
+ "sortOrder": 1,
+ "stateFilter": {
+ "error": true,
+ "firing": true,
+ "noData": true,
+ "normal": false,
+ "pending": true
+ },
+ "viewMode": "list"
+ },
+ "title": "Active Alerts",
+ "type": "alertlist"
+ },
{
"datasource": {
"type": "grafana-postgresql-datasource",
@@ -2219,8 +2257,7 @@
}
]
}
- },
- "overrides": []
+ }
},
"gridPos": {
"h": 4,
@@ -2287,8 +2324,7 @@
}
]
}
- },
- "overrides": []
+ }
},
"gridPos": {
"h": 4,
@@ -2364,8 +2400,7 @@
]
},
"unit": "s"
- },
- "overrides": []
+ }
},
"gridPos": {
"h": 4,
@@ -2436,8 +2471,7 @@
}
]
}
- },
- "overrides": []
+ }
},
"gridPos": {
"h": 4,
@@ -2640,35 +2674,6 @@
"title": "Indexing throughput",
"type": "timeseries"
},
- {
- "description": "All firing and pending Grafana alert rules. Drill into a rule for details and silences. Replaces the Worker Status alertlist (which was a single-panel dashboard).",
- "gridPos": {
- "h": 8,
- "w": 24,
- "x": 0,
- "y": 33
- },
- "id": 6,
- "options": {
- "alertInstanceLabelFilter": "",
- "alertName": "",
- "dashboardAlerts": false,
- "groupBy": [],
- "groupMode": "default",
- "maxItems": 30,
- "sortOrder": 1,
- "stateFilter": {
- "error": true,
- "firing": true,
- "noData": true,
- "normal": false,
- "pending": true
- },
- "viewMode": "list"
- },
- "title": "Active Alerts",
- "type": "alertlist"
- },
{
"gridPos": {
"h": 8,
@@ -2701,7 +2706,7 @@
{
"hide": 2,
"name": "env",
- "query": "staging",
+ "query": "__ENV__",
"skipUrlSync": true,
"type": "constant"
},
(Run: https://github.com/cardstack/boxel/actions/runs/25810773589) |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR clarifies labels and navigation for Synapse-related panels in the Boxel Status overview Grafana dashboard.
Changes:
- Renames the Synapse events timeseries panel to “Matrix Events”.
- Renames the Synapse CPU/memory bargauge panel to “Synapse Process”.
- Adds a panel-level link from the Synapse Process panel to the Synapse dashboard.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
lukemelia
approved these changes
May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
linksarray to the CPU/Mem bargauge so its header chain icon navigates to the Synapse dashboard (matching the pattern used by Realms / Users / Web Requests / Matrix Events).Test plan
/d/000000012).🤖 Generated with Claude Code