Код-ревью Middle Алертинг и усталость от алертов обновлено
Код-ревью: правила алертов
Вопрос
Команда добавила правила алертов для API. Найдите проблемы.
groups:
- name: api
rules:
- alert: HighCPU
expr: node_cpu_usage > 0.8
labels:
severity: page
- alert: ApiErrors
expr: rate(http_requests_total{status="500"}[1m]) > 0
labels:
severity: page
value: "{{ $value }}"
- alert: ApiLatency
expr: avg(http_request_duration_seconds_sum / http_request_duration_seconds_count) > 0.5
for: 2h
labels:
severity: page
annotations:
summary: "Latency"
Коротко
Хорошие правила будят по симптомам, считают доли и перцентили через rate, имеют разумный for и понятные аннотации с раннбуком. Значения выводятся в аннотации через шаблоны, а метки остаются стабильными: severity, team, service.
Что должен найти ревьюер
- Ошибкастрока 4Алерт на CPU с severity page будит людей по причине, а не по симптому. Перевести в дашборд или ticket, а будить по ошибкам и задержке.
- Ошибкастрока 5Нет
for: алерт сработает на первом же всплеске и будет мигать. - Ошибкастрока 9Любая одна ошибка 500 будит дежурного: порог
> 0вместо доли ошибок. Только статус 500, а 502 и 503 не учтены (status=~"5.."). Окно 1 минута слишком короткое и шумное. - Ошибкастрока 12Значение в метке: метки входят в идентичность алерта, и каждый новый
$valueпорождает новый алерт. Значения кладут в аннотации. - Ошибкастрока 14Среднее по счётчикам без
rate: это среднее с момента старта процесса, оно почти не меняется. Нужны перцентили из гистограммы черезrate. - Ошибкастрока 15
for: 2hдля задержки с severity page: дежурный узнает о проблеме через два часа после пользователей. - Стильстрока 19Аннотация из одного слова, нет описания, масштаба и
runbook_url: дежурный не поймёт, что делать.
Разбор
Хорошие правила будят по симптомам, считают доли и перцентили через rate, имеют разумный for и понятные аннотации с раннбуком. Значения выводятся в аннотации через шаблоны, а метки остаются стабильными: severity, team, service.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.