fix(reboot): overlay slo prometheus runtime blockers
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m0s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-03 00:47:46 +08:00
parent 85d8eeb0db
commit c0f43ae080
3 changed files with 347 additions and 0 deletions

View File

@@ -79,6 +79,28 @@ _SOURCE_SCORECARD = (
/ "awoooi-reboot-auto-recovery-slo-scorecard.snapshot.json"
)
PROMETHEUS_RUNTIME_BLOCKERS = [
"all_required_hosts_not_in_10_minute_reboot_window",
"conversation_event_hot_path_index_migration_source_missing",
"host_boot_observation_older_than_target_window",
"host_unreachable_after_reboot",
"host_uptime_unknown",
"reboot_event_required_host_unreachable",
"windows99_vmware_autostart_readback_missing",
]
PROMETHEUS_RUNTIME_READBACK = {
"schema_version": "reboot_slo_prometheus_metric_readback_v1",
"readback_present": True,
"source": "prometheus_query_api",
"query_url": "http://192.168.0.110:9090/api/v1/query",
"active_blockers": PROMETHEUS_RUNTIME_BLOCKERS,
"active_blocker_count": 7,
"primary_blocker": "reboot_event_required_host_unreachable",
"ready": False,
"last_run_timestamp": 1783010479,
}
def test_reboot_auto_recovery_slo_scorecard_loader_exposes_stockplatform_gate():
payload = load_latest_reboot_auto_recovery_slo_scorecard()
@@ -226,6 +248,34 @@ def test_reboot_auto_recovery_slo_scorecard_uses_latest_runtime_scorecard_from_d
)
def test_reboot_auto_recovery_slo_scorecard_overlays_prometheus_runtime_metrics():
payload = load_latest_reboot_auto_recovery_slo_scorecard(
prometheus_metric_readback=PROMETHEUS_RUNTIME_READBACK
)
assert payload["runtime_scorecard_readback_present"] is False
assert payload["runtime_metric_readback_present"] is True
assert payload["runtime_metric_active_blocker_count"] == 7
assert payload["runtime_metric_last_run_timestamp"] == 1783010479
assert payload["active_blockers"] == PROMETHEUS_RUNTIME_BLOCKERS
assert payload["active_blocker_count"] == 7
assert payload["readiness_percent"] == 47
assert payload["primary_blocker"] == "reboot_event_required_host_unreachable"
assert payload["next_safe_action"] == (
"rerun_reboot_event_detector_and_host_probe_verify_only_no_reboot"
)
assert "backup_core_green_not_1" not in payload["active_blockers"]
assert "service_green_not_1" not in payload["active_blockers"]
assert payload["active_blocker_action_matrix"]["item_count"] == 7
assert payload["readback"]["active_blocker_count"] == 7
assert payload["readback"]["runtime_metric_readback_present"] is True
assert payload["rollups"]["active_blocker_count"] == 7
assert payload["rollups"]["runtime_metric_readback_present"] is True
assert payload["rollups"]["primary_blocker_owner_lane"] == (
"reboot_event_detector_and_host_probe"
)
def test_reboot_auto_recovery_slo_scorecard_endpoint_returns_readback(monkeypatch):
monkeypatch.setattr(
agents,