B5-3: Data freshness monitoring — dashboard + alerts #73

Closed
opened 2026-05-11 20:35:44 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-05-11 20:35:44 +00:00 (Migrated from github.com)

Эшелон: 💾 Data infrastructure

Зачем

Нет dashboards для freshness: когда последний раз scrape_kn успешно завершился? Сколько объектов обновлено за 24ч? Если скрапер сломался тихо — данные устаревают незаметно.

Что сделать

Backend endpoint

GET /api/v1/admin/scrape/freshness — для каждого job_type:

  • last_success_at
  • last_attempt_at
  • objects_updated_24h
  • objects_updated_7d
  • status (ok / stale / failed)

Frontend

/admin/scrape/all — карточки freshness:

  • «DOM.РФ: последний run 2 часа назад, обновлено 48 объектов»
  • «OSM POI: 3 дня назад, status: stale» ⚠️
  • «Объектив: 12 дней назад, status: failed»

Sentry alerts

  • Если last_success_at > 3 дня назад для критичных jobs (kn-scraper, objective-sync) → warning
  • Если >7 дней → error
  • Sources: kn_scrape_runs, nspd_geo_log, objective_scrape_runs

Acceptance

  • Endpoint возвращает freshness для 6+ jobs
  • UI рендерит карточки
  • Sentry alert на стесте

Owner

backend-engineer + frontend-engineer

Effort

~2 дня

**Эшелон:** 💾 Data infrastructure ## Зачем Нет dashboards для freshness: когда последний раз scrape_kn успешно завершился? Сколько объектов обновлено за 24ч? Если скрапер сломался тихо — данные устаревают незаметно. ## Что сделать ### Backend endpoint `GET /api/v1/admin/scrape/freshness` — для каждого job_type: - `last_success_at` - `last_attempt_at` - `objects_updated_24h` - `objects_updated_7d` - `status` (ok / stale / failed) ### Frontend `/admin/scrape/all` — карточки freshness: - «DOM.РФ: последний run 2 часа назад, обновлено 48 объектов» ✅ - «OSM POI: 3 дня назад, status: stale» ⚠️ - «Объектив: 12 дней назад, status: failed» ❌ ### Sentry alerts - Если `last_success_at > 3 дня назад` для критичных jobs (kn-scraper, objective-sync) → warning - Если `>7 дней` → error - Sources: `kn_scrape_runs`, `nspd_geo_log`, `objective_scrape_runs` ## Acceptance - [ ] Endpoint возвращает freshness для 6+ jobs - [ ] UI рендерит карточки - [ ] Sentry alert на стесте ## Owner `backend-engineer` + `frontend-engineer` ## Effort ~2 дня
Owner

Status check 2026-05-23

Issue остаётся в силе. Особенно критично сейчас, т.к. DOM.РФ scraper runs 18-25 застряли в status zombie с 2026-05-17 — 1532 объекта не обновляются, и без freshness alerts это замечается случайно.

Priority после pilot demo 28.05: high — operational

Привязка: добавлен в umbrella epic(infra): Pilot infra status 2026-05-23 — после security pivot (вместе с DOM.РФ zombie-runs).

## Status check 2026-05-23 Issue остаётся в силе. Особенно критично сейчас, т.к. DOM.РФ scraper runs 18-25 застряли в status `zombie` с 2026-05-17 — 1532 объекта не обновляются, и без freshness alerts это замечается случайно. **Priority после pilot demo 28.05**: high — operational Привязка: добавлен в umbrella `epic(infra): Pilot infra status 2026-05-23 — после security pivot` (вместе с DOM.РФ zombie-runs).
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#73
No description provided.