Постмортем: высокая cardinality положила VM
Что мы узнали о cardinality бюджетах.
#postmortem#performance
Что произошло
В пятницу в 14:00 один наш клиент задеплоил новую custom-метрику с user_id в лейбле. У них 50k активных юзеров. За 30 минут cardinality пробила 5M unique series. VM начал тормозить, OOM-kill каждые 5 минут, дашборды timeout’ились.
Что мы сделали
- Detected: alert «vm_series_count > 4M» сработал, on-call увидел через 8 минут
- Mitigated: подняли cardinality limit на VM до 10M, restart VM на большем инстансе
- Resolved: связались с клиентом, помогли убрать user_id из лейблов, перенесли в logs
Что мы изменили
- Per-org cardinality budget — теперь есть soft cap, при превышении предупреждение в кабинет
- `/app/metrics-budget` — страница с топом метрик по cardinality
- Документация — добавили Cardinality management в onboarding
Урок
Cardinality — это самое разрушительное, что юзер может сделать с TSDB. Нужны рельсы.