From 05552e51151ffbdc5825e011d3ff54a34e28d737 Mon Sep 17 00:00:00 2001 From: atlas Date: Thu, 27 Aug 2026 12:41:55 +0200 Subject: [PATCH] grafana: the by-label panel has data, so drop its empty-panel warning The forge restarted (new forgejo PID at 12:36), so it re-read [metrics] and gitea_issues_by_label now exists -- 24 series carrying real label names, read back out of the store rather than inferred from the metric name appearing in a label-values list. The panel shipped deliberately empty with EMPTY UNTIL THE FORGE RESTARTS in its title and a matching noValue, because an empty graph and an undeployed metric look identical. That warning is now false, and a stale warning is worse than none: it tells a reader the panel cannot have data at the moment it does. Keeps the operational half rather than deleting it -- the restart requirement is a fact about the NEXT metric someone enables, so it moves into the description as a note and into noValue, where it fires only when the series really is missing. --- nix/host-modules/swarm-grafana/dashboards/forge.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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": [] },