rcourtman
9bcf767b1b
fix(reporting): resolve report subjects through the canonical unified view and paginate the metric card grid
...
Two regressions surfaced by generating a real-mode agent report after a
backend restart:
- Report subject lookups used Monitor.GetUnifiedResources (the raw
resource store), but the raw store's canonical IDs depend on per-boot
ingest order for merged-source hosts: after a restart the same host
resolved to a different agent-<hash> than the one the UI and
/api/state advertise, so reports lost the resource name, availability,
and metrics translation entirely. Subject enrichment now reads
Monitor.UnifiedResourceSnapshot and MetricsTargetForResource resolves
through GetUnifiedReadStateOrSnapshot first (raw store as fallback) -
the same re-ingested registry every other read surface uses.
- The performance summary card grid positions cards absolutely and never
paginated: an agent host reporting 8+ metric families walked off the
page bottom, fought fpdf's auto page break, and scattered one orphan
element per page (a 7-day delly report rendered 18 pages, ten of them
near-blank). The grid now starts a new page before a row that will not
fit; the same report renders 9 pages with intact cards.
Verified live: real-mode delly report shows name, 288 data points,
availability, charts, and correctly paginated cards. The underlying
canonical-ID instability (raw store vs re-ingested view, and the
resource_changes journal fragmenting across boot eras) is a separate
root issue tracked for its own fix.
2026-06-10 22:02:48 +01:00
..
2026-03-18 16:06:30 +00:00
2026-05-25 21:38:43 +01:00
2026-05-25 21:38:43 +01:00
2025-11-26 23:44:36 +00:00
2025-10-20 15:13:37 +00:00
2026-02-07 22:05:55 +00:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-02 14:52:47 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-18 14:54:53 +01:00
2026-04-18 14:54:53 +01:00
2025-12-01 17:33:36 +00:00
2026-03-18 16:06:30 +00:00
2025-12-12 17:51:43 +00:00
2025-12-12 18:13:17 +00:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-18 10:45:25 +01:00
2026-04-18 10:45:25 +01:00
2026-05-19 12:04:51 +01:00
2026-06-02 23:54:48 +01:00
2026-06-04 10:35:35 +01:00
2026-06-04 10:35:35 +01:00
2026-04-01 13:02:14 +01:00
2026-01-01 22:29:15 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-10-14 16:13:53 +00:00
2025-11-12 09:47:02 +00:00
2026-04-01 18:38:42 +01:00
2026-05-05 14:59:29 +01:00
2026-06-04 14:07:14 +01:00
2026-05-19 22:37:55 +01:00
2026-01-28 16:52:35 +00:00
2026-05-05 14:59:29 +01:00
2026-05-05 14:59:29 +01:00
2026-04-22 09:22:46 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-05-05 14:59:29 +01:00
2026-05-29 11:44:29 +01:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 18:38:42 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-01-01 22:29:15 +00:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2025-11-26 23:44:36 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-25 09:25:03 +01:00
2026-05-25 09:25:03 +01:00
2026-04-11 22:46:34 +01:00
2026-02-04 19:49:52 +00:00
2026-02-04 19:49:52 +00:00
2026-04-12 09:41:29 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:00:48 +01:00
2026-06-09 21:42:21 +01:00
2026-06-04 09:54:23 +01:00
2025-12-01 21:18:33 +00:00
2025-11-27 09:16:53 +00:00
2026-02-04 19:35:19 +00:00
2026-05-15 21:27:39 +01:00
2026-05-15 21:27:39 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-06-10 21:25:02 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-01-22 13:39:06 +00:00
2026-06-04 09:11:07 +01:00
2026-06-02 23:54:48 +01:00
2026-06-01 14:16:57 +01:00
2026-05-28 18:23:14 +01:00
2026-06-01 14:16:57 +01:00
2026-05-05 14:19:50 +01:00
2026-06-03 11:43:20 +01:00
2026-06-04 09:00:30 +01:00
2026-05-05 16:25:00 +01:00
2026-04-19 11:42:53 +01:00
2026-04-19 11:42:53 +01:00
2026-05-01 20:28:12 +01:00
2026-06-04 09:11:07 +01:00
2025-11-18 22:57:20 +00:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-05-13 22:18:47 +01:00
2025-10-20 15:13:38 +00:00
2026-05-28 14:42:43 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-04-01 15:29:11 +01:00
2026-04-01 10:04:30 +01:00
2026-05-01 20:28:12 +01:00
2026-04-11 14:51:10 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-05-25 20:35:58 +01:00
2026-05-13 17:05:03 +01:00
2026-01-04 10:29:40 +00:00
2026-05-13 17:05:03 +01:00
2026-05-08 19:53:03 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:36:30 +01:00
2026-04-01 11:51:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 10:27:59 +01:00
2026-06-10 16:19:24 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:31:50 +01:00
2026-05-13 19:00:02 +01:00
2026-04-01 19:14:12 +01:00
2026-04-01 11:51:19 +01:00
2026-06-10 16:20:35 +01:00
2026-06-10 16:20:35 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 20:41:56 +01:00
2026-04-21 14:46:23 +01:00
2026-04-21 14:46:23 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-06-10 16:08:12 +01:00
2026-06-10 16:08:12 +01:00
2026-01-04 10:29:40 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 09:00:30 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 10:27:59 +01:00
2026-05-17 18:45:24 +01:00
2026-01-05 23:34:33 +00:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 22:02:48 +01:00
2026-05-05 12:59:59 +01:00
2026-04-11 22:46:34 +01:00
2026-06-10 11:37:39 +01:00
2026-04-01 10:04:30 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 22:46:34 +01:00
2026-02-07 22:05:55 +00:00
2026-01-14 12:26:18 +00:00
2026-04-23 20:38:33 +01:00
2026-04-23 20:38:33 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-01 23:33:43 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 22:58:27 +00:00
2026-03-31 15:42:16 +01:00
2026-05-28 11:39:30 +01:00
2026-05-28 11:39:30 +01:00
2025-12-02 17:21:48 +00:00
2026-05-06 10:35:34 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-06 17:44:52 +00:00
2026-01-06 17:44:52 +00:00
2026-02-04 19:33:29 +00:00
2025-12-02 12:02:13 +00:00
2026-03-18 16:06:30 +00:00
2026-05-27 15:27:25 +01:00
2026-05-27 15:27:25 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-05-22 20:26:56 +01:00
2026-06-10 09:19:51 +01:00