Extract compute_freshness(db) from the /admin/scrape/freshness handler (single source of truth, endpoint response unchanged) and add a daily beat task scrape_freshness_check that alerts via sentry_sdk.capture_message when a source is stale/failed — level=error if a critical source fully failed, else warning; also logs at matching severity so a no-DSN worker still surfaces it. Registered in celery include + beat (09:00 MSK daily, after the nightly scraper cluster). Closes #freshness-monitor (rank 7 follow-up) |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||