fix(market-metrics): offer-trend таймаут — warning вместо exception (ложные GlitchTip-события) #2329

Merged
bot-backend merged 2 commits from fix/offer-trend-log-level into main 2026-07-03 22:26:19 +00:00
Collaborator

Что

Профилирование QueryCanceled на /analyze (2/сутки в GlitchTip, прод-EXPLAIN на живом hot-участке 66:41:0702048:27):

  • Единственный источник QueryCanceled в analyze — 8с-гвард вокруг offer-trend §4.3 (серверный statement_timeout = 0, проверено).
  • Offer-trend — самый тяжёлый запрос analyze: bitmap 211 761 лотов → Nested Loop в objective_lots_history~7.4 ГБ буфер-трафика, 1.6с на тёплом кэше. На холодном пробивает 8с (~3% прогонов; hot-участок гоняют ~60×/день — demo/QA).
  • Таймаут обработан корректно: деградация в пустой offer_block, analyze успешен (payload 84 КБ пишется). Но logger.exception при LoggingIntegration(event_level=ERROR) поднимал каждое срабатывание как GlitchTip-событие.

Фикс: WARNING вместо exception + комментарий-обоснование. Поведение продукта не меняется.

Корневой фикс (устранить саму медленноту) — отдельным PR database-expert: покрывающий индекс objective_lots_history (objective_lot_id, snapshot_date, fetched_at DESC) INCLUDE (...) + дедуп radius_lots до join. Порог 8с не поднимаем — эндпоинт синхронный.

Тесты

91 passed (market_metrics/offer_trend свип), ruff clean.

## Что Профилирование QueryCanceled на /analyze (2/сутки в GlitchTip, прод-EXPLAIN на живом hot-участке 66:41:0702048:27): - Единственный источник QueryCanceled в analyze — 8с-гвард вокруг offer-trend §4.3 (серверный statement_timeout = 0, проверено). - Offer-trend — самый тяжёлый запрос analyze: bitmap 211 761 лотов → Nested Loop в `objective_lots_history` → **~7.4 ГБ буфер-трафика**, 1.6с на тёплом кэше. На холодном пробивает 8с (~3% прогонов; hot-участок гоняют ~60×/день — demo/QA). - Таймаут **обработан корректно**: деградация в пустой offer_block, analyze успешен (payload 84 КБ пишется). Но `logger.exception` при `LoggingIntegration(event_level=ERROR)` поднимал каждое срабатывание как GlitchTip-событие. Фикс: WARNING вместо exception + комментарий-обоснование. Поведение продукта не меняется. **Корневой фикс** (устранить саму медленноту) — отдельным PR database-expert: покрывающий индекс `objective_lots_history (objective_lot_id, snapshot_date, fetched_at DESC) INCLUDE (...)` + дедуп radius_lots до join. Порог 8с не поднимаем — эндпоинт синхронный. ## Тесты 91 passed (market_metrics/offer_trend свип), ruff clean.
bot-backend added 1 commit 2026-07-03 21:58:28 +00:00
fix(market-metrics): offer-trend таймаут — warning вместо exception
All checks were successful
CI Trade-In / changes (pull_request) Successful in 6s
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m52s
CI / backend-tests (pull_request) Successful in 15m9s
5be7b6882f
Профилирование 2026-07-04: QueryCanceled на /analyze (~2/сутки в
GlitchTip) — это НЕ user-баг. Offer-trend (§4.3) — самый тяжёлый запрос
analyze (211k итераций Nested Loop в objective_lots_history, ~7.4 ГБ
буфер-трафика) — на холодном кэше иногда пробивает свой 8с-гвард (~3%
прогонов hot-участка). Обрабатывается корректно (деградация в пустой
offer_block, analyze успешен), но logger.exception при
LoggingIntegration(event_level=ERROR) поднимал ложные GlitchTip-события.
Ожидаемый таймаут аддитивного блока = WARNING. Корневой фикс (индекс
objective_lots_history) — отдельным PR database-expert.
Light1YT added 1 commit 2026-07-03 22:10:19 +00:00
docs(market-metrics): связка констант цены с partial-индексом миграции 186
All checks were successful
CI Trade-In / changes (pull_request) Successful in 12s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m48s
CI / backend-tests (pull_request) Successful in 15m9s
2d546a4127
bot-backend merged commit 9feadc8458 into main 2026-07-03 22:26:19 +00:00
bot-backend deleted branch fix/offer-trend-log-level 2026-07-03 22:26:19 +00:00
Sign in to join this conversation.
No reviewers
No milestone
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#2329
No description provided.