feat: replace regime monitor with v2 methodology

This commit is contained in:
dennisthiessen committed 2026-07-15 09:02:56 +02:00
1 parent fd21067a40
commit 1d5b1489be
17 files changed
+1599 -1535

No files matched your search

+15 -3
View File
@@ -1001,12 +1001,20 @@ async def compute_regime_monitor() -> None:
result = await update_regime_monitor(db)
state = result.get("state") or {}
warning = result.get("warning") or {}
_runtime_progress(job_name, processed=1, total=1)
_runtime_finish(
job_name, "completed", processed=1, total=1,
message=f"Index: {result.get('total_score')} ({result.get('band')})",
message=f"State: {state.get('score')} · Warning: {warning.get('score')}",
)
_log_event(
logging.INFO,
"job_complete",
job=job_name,
state=state.get("score"),
warning=warning.get("score"),
)
_log_event(logging.INFO, "job_complete", job=job_name, score=result.get("total_score"))
except Exception as exc:
_runtime_finish(job_name, "error", processed=0, total=1, message=str(exc))
_log_event(logging.ERROR, "job_error", job=job_name, error_type=type(exc).__name__, message=str(exc))
@@ -1086,7 +1094,11 @@ async def run_event_study_job() -> None:
_runtime_progress(job_name, processed=1, total=1)
if report.get("available"):
msg = f"{len(report.get('events', []))} events, lead Δ {report.get('lead_delta_days')}d"
metrics = report.get("metrics") or {}
msg = (
f"{metrics.get('events_warned', 0)}/{metrics.get('events', 0)} warned, "
f"{metrics.get('false_alarms_per_year', 0)} false alarms/year"
)
else:
msg = report.get("reason", "no data")
_runtime_finish(job_name, "completed", processed=1, total=1, message=msg)