Runbook: HighP99Latency
Source of truth:
tools/observability/alerts/angarabase_alerts.yaml. Backed by: RM-0.6.3.8 S7.
Что означает
P99 latency запросов превышает 100 ms на протяжении 5 минут.
Метрика: histogram_quantile(0.99, rate(angarabase_query_exec_duration_ms_bucket[5m])).
Severity
warning. Сигнал ухудшения UX, не отказ.
Initial response
- Открыть Grafana dashboard AngaraBase Overview v2 → row “Query Performance”.
- Сравнить с P50/P95 — если все три выросли вместе, это глобальная проблема (CPU/IO/lock); если только P99 — tail latency (GC, fsync stall, single slow query).
- Проверить
slow_query_totalrate — растёт ли число slow queries.
Diagnostics
# Top-N медленных запросов
curl -sf http://127.0.0.1:9898/metrics | rg slow_query_total
curl -sf http://127.0.0.1:9898/metrics | rg query_exec_duration_ms_bucket
# Активные long-running транзакции
psql -c "SELECT pid, age(now(), xact_start), query FROM angara_stat_activity \
WHERE state = 'active' ORDER BY xact_start LIMIT 10;"
Cross-check с другими сигналами: BufferPoolPressure, WALFsyncSlow, LongTransaction.
Mitigation
- План оптимизации: см. performance-tuning.md.
- ANALYZE на горячих таблицах.
- Индексы: проверить
angarabase_index_routing_legacy_total > 0— если да, выполнить DROP+CREATE INDEX (см. index-routing-legacy-fallback). - Buffer pool: hit ratio < 90% → увеличить
buffer_pool_pages.
Escalation
Если latency не снижается после стандартных действий > 30 минут → diagnostics bundle + эскалация.