diff --git a/nix/host-modules/swarm-grafana/dashboards/forge.json b/nix/host-modules/swarm-grafana/dashboards/forge.json index a8792b48..524a21f4 100644 --- a/nix/host-modules/swarm-grafana/dashboards/forge.json +++ b/nix/host-modules/swarm-grafana/dashboards/forge.json @@ -380,8 +380,8 @@ { "id": 30, "type": "timeseries", - "title": "Open issues by label — EMPTY UNTIL THE FORGE RESTARTS", - "description": "Deliberately shipped empty, and this text is the panel's real content. The per-label and per-repository breakdowns are enabled in the forge's config, but forgejo reads its [metrics] section at STARTUP — so the series do not exist until that process restarts, which a config merge alone does not do. An empty panel here means 'not deployed yet', NOT 'no issues have labels'. Confirm which you are looking at by checking whether the forgejo process has restarted, not by re-querying the metric: an absent series says absent and never says why. Once it fills, this becomes the per-label backlog view and this warning should be deleted.", + "title": "Open issues by label", + "description": "Per-label backlog. Like every panel on this board it is an INVENTORY gauge: it says how many open issues carry each label right now, never how fast they arrive or close. A flat line is a real reading, not a broken scrape. Note for whoever enables the next forge metric: forgejo reads its [metrics] section at STARTUP, so a newly enabled series does not exist until that process restarts — a config merge alone does not do it, and an absent series says absent without ever saying why. Check the process, not the metric.", "datasource": { "type": "prometheus", "uid": "@datasourceUid@" }, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 19 }, "targets": [ @@ -405,7 +405,7 @@ "spanNulls": false, "axisSoftMin": 0 }, - "noValue": "no data yet — the forge process has not restarted since the metric was enabled" + "noValue": "no series — check whether the forgejo process restarted since [metrics] last changed; an absent series never says why it is absent" }, "overrides": [] },