Summary
Metrics → Info currently displays these two rows permanently as n/a:
- Time since last Heal Activity
- Time since last Scan Activity
This is not only a missing-series problem. BasicDashboard.tsx currently hardcodes both values to "n/a", so fixing the advanced widget queries alone cannot populate the Info page.
The two legacy time-since values should be replaced with higher-signal V3 summaries and the Info page should consume the same widget data as the advanced dashboard.
Proposed replacement
1. Erasure Health
Use:
min(minio_cluster_erasure_set_overall_health{$__query})
Display:
1 → Healthy
0 → Unhealthy
- missing →
Unknown
Using min is conservative when every cluster node is scraped: any unhealthy view should make the summary unhealthy.
2. Usage Data Age
Use:
max(minio_cluster_usage_objects_since_last_update_seconds{$__query})
Display the result as a duration in seconds, for example 1 minute or 3 hours. Missing data before the first usage update should render as Pending, not zero.
This is more relevant than node-local scanner activity because it directly explains how fresh the adjacent Reported Usage value is.
The resulting summary becomes:
Erasure Health Healthy
Usage Data Age 1 minute
Uptime 4 hours
Why not preserve Time Since Last Heal?
minio_heal_time_last_activity_nano_seconds is not available in V3 and is a weak top-level health signal:
- a healthy cluster may legitimately have no recent healing activity;
- recent activity does not prove that healing succeeded;
- the V2 series is conditional and can be absent;
- erasure-set health directly reports whether storage remains healthy.
minio_cluster_erasure_set_healing_drives_count is still useful, but belongs in the Drives card or Resources/Advanced view. It can be presented as Online / Healing / Offline rather than occupying the Reported Usage summary.
Implementation notes
- Replace widget IDs 80/81 with the new metric definitions and titles.
- Change the age formatter from nanoseconds to seconds.
- Replace the Heal/Scan-specific renderers with a generic status/summary renderer, or make them honor the supplied widget title.
- Make
BasicDashboard fetch/reuse the same widget results instead of keeping its own hardcoded values or PromQL.
- Preserve explicit fallback states when Prometheus is unavailable.
- Honor the existing selector assembled from
job and CONSOLE_PROMETHEUS_EXTRA_LABELS.
Acceptance criteria
- Metrics → Info no longer shows unconditional
n/a values when V3 metrics are available.
- Metrics → Usage and Metrics → Info use the same semantic definitions.
- A healthy single-node deployment renders
Healthy and a finite usage age.
- A multi-node deployment produces one conservative cluster summary without duplicate target series.
- Missing first-scan data renders
Pending; unreachable metrics render Unknown or Unavailable.
- No new compatibility-only MinIO metric is required.
Related: #2, #7
Summary
Metrics → Info currently displays these two rows permanently as
n/a:This is not only a missing-series problem.
BasicDashboard.tsxcurrently hardcodes both values to"n/a", so fixing the advanced widget queries alone cannot populate the Info page.The two legacy time-since values should be replaced with higher-signal V3 summaries and the Info page should consume the same widget data as the advanced dashboard.
Proposed replacement
1. Erasure Health
Use:
Display:
1→Healthy0→UnhealthyUnknownUsing
minis conservative when every cluster node is scraped: any unhealthy view should make the summary unhealthy.2. Usage Data Age
Use:
Display the result as a duration in seconds, for example
1 minuteor3 hours. Missing data before the first usage update should render asPending, not zero.This is more relevant than node-local scanner activity because it directly explains how fresh the adjacent Reported Usage value is.
The resulting summary becomes:
Why not preserve Time Since Last Heal?
minio_heal_time_last_activity_nano_secondsis not available in V3 and is a weak top-level health signal:minio_cluster_erasure_set_healing_drives_countis still useful, but belongs in the Drives card or Resources/Advanced view. It can be presented as Online / Healing / Offline rather than occupying the Reported Usage summary.Implementation notes
BasicDashboardfetch/reuse the same widget results instead of keeping its own hardcoded values or PromQL.jobandCONSOLE_PROMETHEUS_EXTRA_LABELS.Acceptance criteria
n/avalues when V3 metrics are available.Healthyand a finite usage age.Pending; unreachable metrics renderUnknownorUnavailable.Related: #2, #7