Troubleshooting¶
Runbook'и для типовых инцидентов: «что вижу → причина → как починить». Страницы построены так, чтобы на pager'е или на встрече инцидента открыть одну и пройти сверху вниз по секциям.
Правило: сначала сюда, потом в чат¶
Перед тем, как писать «у меня упало» в чат — прочитай соответствующую страницу. В 80% случаев ответ уже есть здесь, и ты разберёшься быстрее, чем дождёшься ответа. Если runbook не покрывает твой симптом — напиши в чат и заведи PR на этот handbook: добавь раздел со своим случаем.
Страницы¶
kafka-consumer-stuck.md— consumer не потребляет сообщения, лаг растёт. Причины: долгий handler, rebalance-loop, panic, DLQ, Redis недоступен.kafka-rebalancing.md— rebalance-loop: как отличить от stuck, медленный handler, GC pauses, static membership, cooperative sticky.migration-fails.md—make migrate-up/ golang-migrate CLI падает.dirty state, advisory lock, deadlock, SSL mismatch, несинхронизированная схема.db-slow-query.md— медленный SQL: локализация через Tempo /pg_stat_statements,EXPLAIN ANALYZE, индексы, висячие транзакции, bloat.memory-leak.md— heap/goroutine leak: pprof, diff между snapshot'ами, типовые причины (кэш, незакрытый body, channel без sender,time.Tick).redis-unavailable.md— Redis лежит или тормозит: dial/timeout/pool exhausted/OOM/READONLY, команды диагностики, порядок действий.test-hangs.md— тест висит или не завершается. testcontainers Docker, goroutine leak,time.Sleepвместоeventually,selectбезctx.Done().
Связанные страницы¶
- Не consumer, а outbox на publisher-стороне лагает →
../how-to/debug-outbox-lag.md. - Общий debugging flow production-инцидента (три сигнала, Grafana
→ Tempo → Loki) →
../conventions/observability.md.