KPI tiles show 0 requests when the platform has per-module metrics off #81
Description
Problem
On a platform with per-module metrics off (protean.trace.metrics.enabled=false, the quickstart default), the KPI row shows Requests · total 0 and Error rate 0.00% while traffic is flowing. I saw this live on 2026-10-12 against quickstart on :8080, during a 3,000-request burst.
The platform reports the situation correctly. Its ready ack carries metricsEnabled: false, and its metrics frames are []. The two tiles add up the per-module cumulative counts from metrics, so an empty array becomes a confident zero. The module table already reads the ack and says "Module metrics are off" (#63). The two KPI tiles don't read it.
Decision
The two tiles follow the same ack-driven reading as the module table, checked in this order:
| Situation | Requests · total / Error rate |
|---|---|
metrics has rows |
the numbers, as now |
tracesEnabled: false |
— and "recording off" (checked first, same as the module table) |
metricsEnabled: false |
— and "metrics off" |
metricsEnabled: true |
the numbers: here a zero really is zero |
| no ack and no rows | — and "not reported" |
Do not fall back to summary.count. It is capped by the ring capacity (measured: 340 requests reported as 200), so it would understate traffic more the busier the platform is. The summary trend lines (vs prev, err) stay, because they are a different measurement and are labelled as one.
Done when
- With metrics off, neither tile shows a number it does not have.
- With metrics on and no traffic, the tiles still show
0, because that is true. - Scenario tests cover each row of the table above, and reverting the change makes them fail.
- Checked live against quickstart with metrics off.
Activity
fix(kpi): show a dash, not zero, when the platform keeps no totals (#82)