Полнота базы и здоровье конвейера

данные на 15.08.2026 00:42 МСК база 93,9 ГБ · контроль 675 575 док. · закупочные процедуры 36 885 331 док.

Тревоги — что накричали обёртки и сторожа, и что из этого не разобрано

неразобранных тревог: 22 самая старая 2,7 сут назад разобрать: scripts/alerts.sh, затем scripts/alerts.sh --ack

когдаисточникчто случилось
2026-08-12 08:30:07check-agents gz.update-nightly: агент на машине ЕСТЬ, но дашборд его не знает — он НЕ под наблюдением (добавить в AGENTS, gz/web/completeness.py)
2026-08-12 08:30:08check-agents gz.collect-daily: ВЫКЛЮЧЕН (disabled) — по расписанию не запускается; последний успех 111 ч назад
2026-08-12 08:30:08check-agents gz.dadata-tranche: не отрабатывает — последний успех 128 ч назад при расписании раз в 24 ч
2026-08-12 08:30:14check-stale-logs logs/collect-2021-20260811.log — молчит 1866 мин, маркера финиша нет
2026-08-12 14:00:04check-agents gz.dadata-tranche: не отрабатывает — последний успех 133 ч назад при расписании раз в 24 ч
2026-08-12 14:00:12check-stale-logs logs/collect-2021-20260811.log — молчит 2196 мин, маркера финиша нет
2026-08-12 20:00:06check-agents gz.dadata-tranche: не отрабатывает — последний успех 139 ч назад при расписании раз в 24 ч
2026-08-12 20:00:14check-stale-logs logs/collect-2021-20260811.log — молчит 2556 мин, маркера финиша нет
2026-08-13 08:30:25check-stale-logs logs/collect-2021-20260811.log — молчит 3306 мин, маркера финиша нет
2026-08-13 14:00:28check-stale-logs logs/collect-2021-20260811.log — молчит 3636 мин, маркера финиша нет
2026-08-13 20:00:20check-stale-logs logs/collect-2021-20260811.log — молчит 3996 мин, маркера финиша нет
2026-08-14 08:34:22gz.proba-alert агент завершился с кодом 3, см. /Users/sqwer/claude/gz/logs/gz.proba-alert-20260814.log

Показаны последние 12 из 22. Очередь — файл logs/alerts.log: она переживает ночь и закрытый экран, в отличие от нотификации, которая живёт секунды и требует человека у монитора (05.08 и 06.08 бэкап отменялся, узнали 11-го).

Ночные контуры — жив ли конвейер без человека в петле

Бэкап базы идёт по расписанию

ежедневный дамп БД · ежедневно 05:00 · gz.backup
последний успех: 14.08 06:21 (18 ч назад)
последняя РАБОТА: 14.08 06:21 (18 ч назад)
последний дамп: 14.08 06:21
дамп fas_20260814_050002.dump — 11,1 ГБ против базы 93,9 ГБ, хранится копий: 3
последняя запись в логе: конец код 0 · 2026-08-14 06:21:34 · gz.backup-20260814.log

Транш DaData идёт по расписанию

ночной транш обогащения org по стоячему ОК owner · ежедневно 00:10 · gz.dadata-tranche
последний успех: 14.08 01:00 (24 ч назад)
последняя РАБОТА: 14.08 01:00 (24 ч назад)
последний ответ DaData: 15.08 00:42
последняя запись в логе: конец код 0 · 2026-08-14 01:00:33 · gz.dadata-tranche-20260814.log

Ночное обновление запускается, но работы не делает — холостых прогонов подряд: 3

ПОЛНЫЙ цикл обновления базы ночью · ежедневно 01:00 · gz.update-nightly
последний успех: 14.08 01:00 (24 ч назад)
последняя РАБОТА: в сохранённых логах не найдена · холостых прогонов подряд: 3
последняя запись в логе: конец код 0 · 2026-08-14 01:00:13 · gz.update-nightly-20260814.log

Сторож конвейера идёт по расписанию

единственный, кто по расписанию смотрит НА САМ КОНВЕЙЕР · ежедневно 08:30, 14:00, 20:00 · gz.watchdog
последний успех: 14.08 20:00 (5 ч назад)
последняя РАБОТА: 14.08 20:00 (5 ч назад)
последняя запись в логе: конец код 0 · 2026-08-14 20:00:21 · gz.watchdog-20260814.log

Период расписания читается из самого .plist (у агента с несколькими запусками в сутки — по самому длинному промежутку между ними). Красное — не мнение, а факт: агент выключен, либо последний успешный прогон старше трёх периодов расписания. Для бэкапа возрастом считается сам файл дампа, а не код выхода агента (код 0 без дампа мы уже видели 07.08). Прогон, закрывшийся нулём на законном пропуске («канал занят», «остаток квоты ниже порога»), успехом СЧИТАЕТСЯ, а работой — нет: 12–14.08 главный агент три ночи подряд выходил кодом 0, не подвинув горячий край.

Закупочные процедуры (proc) — полнота по журналу сканирования

регион 202120222023202420252026 последний деньлаг
50 · Московская обл. 1 365 491 16 060 / 16 060 яч. 1 736 916 16 060 / 16 060 яч. 2 217 219 16 060 / 16 060 яч. 2 610 833 16 104 / 16 104 яч. 2 189 542 16 060 / 16 060 яч. 1 278 385 9 768 / 9 988 яч. 10.08.2026 5 дн.
77 · Москва 2 350 299 16 060 / 16 060 яч. 3 347 321 16 060 / 16 060 яч. 4 316 633 16 060 / 16 060 яч. 5 504 426 16 104 / 16 104 яч. 4 756 492 16 060 / 16 060 яч. 2 911 786 9 768 / 9 988 яч. 10.08.2026 5 дн.
78 · Санкт-Петербург 2 082 328 16 060 / 16 060 яч. 0 0 / 16 060 яч. 0 0 / 16 060 яч. 0 0 / 16 104 яч. 19 350 44 / 16 060 яч. 0 0 / 9 988 яч. 19.11.2025 269 дн. разовый сбор
100 % собрано целиком 95–99 % добор на один прогон 50–95 % собрано частично < 50 % сбора почти не было пусто год в скоупе, но не собран вне скоупа до 2022 года (решение 30.07)

В клетке — документов найдено и сколько ЯЧЕЕК «день × тип» закрыто сбором (единица журнала: за день сбор тянет каждый из типов отдельно, поэтому «365 из 365 дней» ещё не значит «год собран» — 13.08 при полных днях недоставало 793 584 документа). Ноль документов при просмотренных днях — это честный ноль, а не пробел: журнал fz44_proc.scan_log пишет и пустые дни. Разбор: 29 300 162 разобрано, 7 581 718 ждёт, 3 451 дублей. Ночного агента у этого контура нет — сбор идёт руками, поэтому лаг помечен «разовый сбор» и тревогой не считается.

Контроль (жалобы, проверки, РНП) — по факту наличия документов в дне

регион 2020202120222023202420252026 последний деньлаг
47 · Ленинградская обл. 0 0 дн. с публ. 0 0 дн. с публ. 0 0 дн. с публ. 6 636 252 дн. с публ. 2 525 137 дн. с публ. 27.07.2026 19 дн. разовый сбор
50 · Московская обл. 6 291 253 дн. с публ. 12 551 257 дн. с публ. 25 341 295 дн. с публ. 30 717 306 дн. с публ. 15 208 279 дн. с публ. 13 857 281 дн. с публ. 10 575 166 дн. с публ. 12.08.2026 3 дн.
77 · Москва 15 690 338 дн. с публ. 24 377 342 дн. с публ. 47 819 356 дн. с публ. 57 648 355 дн. с публ. 50 102 359 дн. с публ. 48 637 352 дн. с публ. 32 719 210 дн. с публ. 12.08.2026 3 дн.
78 · Санкт-Петербург 1 280 229 дн. с публ. 18 201 310 дн. с публ. 30 375 347 дн. с публ. 37 987 347 дн. с публ. 35 279 346 дн. с публ. 30 198 350 дн. с публ. 15 664 196 дн. с публ. 27.07.2026 19 дн. разовый сбор

Клетки контроля намеренно НЕ красятся в шкалу полноты (серое = «данные есть»): журнала сканирования у этого контура нет, а значит нет и знаменателя — сколько ячеек должно было быть. Красить их зелёным значило бы выдать наличие данных за доказанную полноту; ровно эта ошибка 13.08 скрыла 793 584 недостающих документа у proc. Чтобы шкала появилась и здесь, сбору контроля нужен такой же журнал (день × тип), как у proc. Пробелы внутри года ищет python -m gz.fz44.control.collect --gaps по календарю публикаций. Лаг тревожен только у регионов ночного сбора (50, 77); остальные помечены «разовый сбор» — там дата это факт, а не сигнал. Документов без даты публикации: 105 898 — они не попали ни в одну клетку. Организаций в справочнике DaData: 197 201.