[CL-OBS-LOG-HEALTH] Дневной отчёт: топ WARNING/ERROR паттернов за 24ч #310

Merged
andrei merged 1 commit from feature/claude-daily-log-health into master 2026-06-10 15:16:13 +00:00
Owner

Что сделано

  • _log_health_lines() в daily_summary.py: парсит хвост pm2-daemons-out.log (cap 5MB), группирует WARNING/ERROR/CRITICAL за 24ч по нормализованному шаблону (числа → #), возвращает топ-3 строки вида 216× WARNING bot.grid.loop_helpers: ….
  • Секция «Логи 24ч» в дневном Telegram-отчёте; fail-soft (ошибка скана не ломает отчёт); путь лога — env ARNOLD_DAEMON_LOG_PATH.

Зачем

trend_sniper был молча сломан 3+ дня (PR #309): AttributeError в strategy.analyze виден только как per-symbol WARNING в логе, который никто не читает. Теперь повторяющиеся паттерны ошибок всплывают в ежедневном отчёте сами.

План тестирования

  • 5 новых тестов: группировка+счёт, исключение записей вне окна 24ч, отсутствие файла → [], top_n cap, пропуск malformed-строк.
  • Существующие 15 тестов daily_summary — green. ruff — clean.
  • После деплоя: дождаться ближайшего дневного отчёта и убедиться, что секция приходит (ожидаемый топ: grid exposure warnings).

Где могу ошибаться

  • Формат строки лога захардкожен под текущий pm2-префикс YYYY-MM-DD HH:MM:SS +00:00: {json} — если формат логгера изменится, секция тихо опустеет (fail-soft, не сломает отчёт).
  • 5MB хвоста может не покрыть полные 24ч при очень шумном дне — тогда счётчики занижены, но топ-паттерны всё равно видны.
## Что сделано - `_log_health_lines()` в `daily_summary.py`: парсит хвост `pm2-daemons-out.log` (cap 5MB), группирует WARNING/ERROR/CRITICAL за 24ч по нормализованному шаблону (числа → `#`), возвращает топ-3 строки вида `216× WARNING bot.grid.loop_helpers: …`. - Секция «Логи 24ч» в дневном Telegram-отчёте; fail-soft (ошибка скана не ломает отчёт); путь лога — env `ARNOLD_DAEMON_LOG_PATH`. ## Зачем trend_sniper был молча сломан 3+ дня (PR #309): AttributeError в strategy.analyze виден только как per-symbol WARNING в логе, который никто не читает. Теперь повторяющиеся паттерны ошибок всплывают в ежедневном отчёте сами. ## План тестирования - 5 новых тестов: группировка+счёт, исключение записей вне окна 24ч, отсутствие файла → [], top_n cap, пропуск malformed-строк. - Существующие 15 тестов daily_summary — green. ruff — clean. - После деплоя: дождаться ближайшего дневного отчёта и убедиться, что секция приходит (ожидаемый топ: grid exposure warnings). ## Где могу ошибаться - Формат строки лога захардкожен под текущий pm2-префикс `YYYY-MM-DD HH:MM:SS +00:00: {json}` — если формат логгера изменится, секция тихо опустеет (fail-soft, не сломает отчёт). - 5MB хвоста может не покрыть полные 24ч при очень шумном дне — тогда счётчики занижены, но топ-паттерны всё равно видны.
[CL-OBS-LOG-HEALTH] Дневной отчёт: топ повторяющихся WARNING/ERROR за 24ч
All checks were successful
Arnold Forgejo CI / secret-scan (pull_request) Successful in 3s
Forgejo Smoke Test / Smoke (pull_request) Successful in 2s
Arnold Forgejo CI / frontend-audit (pull_request) Successful in 10s
Arnold Forgejo CI / backend-tests (pull_request) Successful in 4m30s
b260aa4de5
Урок trend_sniper (мертва 3+ дня молча): AttributeError внутри strategy.analyze
проглатывается strategy_worker'ом как per-symbol WARNING, который никто не
читает. Новая секция 'Логи 24ч' в дневном Telegram-отчёте: парсинг хвоста
pm2-daemons-out.log (5MB cap), группировка WARNING/ERROR/CRITICAL по шаблону
(числа → #), топ-3 паттерна с количеством. Fail-soft: ошибка скана не ломает
отчёт. Путь лога конфигурируем ARNOLD_DAEMON_LOG_PATH.

Тесты: 5 новых (группировка, окно 24ч, отсутствие файла, top_n cap,
malformed lines) + 15 существующих daily_summary green, ruff clean.
andrei merged commit 0cf22106e2 into master 2026-06-10 15:16:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
europa-tech-srl/arnold-trader-app!310
No description provided.