Description
Wave 3 found that fastest_effective_interval_seconds includes profile-excluded and shed groups. Under the availability profile, an excluded faster group can make the process fail liveness before its only admissible group is due.
Acceptance Criteria
- #1 The fastest interval considers only enabled, profile-allowed, non-shed groups
- #2 An empty admissible set falls back to the configured resolve interval
- #3 A regression test covers the availability-profile 180-second versus 270-second boundary
Definition of Done
- #1 just check (ruff format –check, ruff check, mypy, generated-doc drift, offline API conformance, and the marker-filtered pytest run with the 80% coverage floor — this is exactly what the CI
testjob runs) - #2 just gen, when metrics, config, endpoints, collectors, the settings schema or the chart config changed —
just checkincludes the drift gate and CI fails the build on it - #3 Grafana queries in grafana/dashboards/*.json and grafana/alerts/ updated, if a metric or label name changed
Implementation Plan
Add the availability-profile liveness regression, filter the fastest cadence to admissible non-shed groups, and run focused scheduler and liveness tests.
Implementation Notes
The failing availability-profile regression observed 60 seconds from an excluded priority-2 group instead of 300 seconds from the admissible priority-1 group. The liveness cadence now uses enabled/profile-allowed/non-shed groups and falls back when none exist. Integrated gate: 2827 passed.
Final Summary
Made liveness cadence profile-aware and shed-aware with a test-first availability-profile regression; just check and just ci pass.