Назови примеры метрик для алертов
Что проверяют
Отличаете ли вы метрики, по которым можно будить дежурного ночью, от тех, что просто красиво выглядят на дашборде. Следом обычно спрашивают, какие пороги вы ставите и что делаете, чтобы алерты не превратились в шум.
Как отвечать
Стройте ответ от симптомов, которые чувствует пользователь, а не от загрузки железа. Каркас известный: четыре золотых сигнала (задержка, трафик, ошибки, насыщение), RED для сервисов (Rate, Errors, Duration) и USE для ресурсов (Utilization, Saturation, Errors).
Что назвать конкретно:
- доля ошибок: пятисотые ответы и неуспешные коды gRPC к общему числу запросов, обязательно через
rate()за окно, а не абсолютным счётчиком; - задержка по перцентилям: p95 и p99 из гистограммы через
histogram_quantile, потому что среднее прячет хвост; - сгорание бюджета ошибок: алерт на скорость расходования SLO в двух окнах, быстром и медленном (классика это 14.4x за час). Так уходит большая часть ложных срабатываний;
- насыщение: лаг консьюмера Kafka, длина внутренней очереди, ожидание в пуле соединений к базе (
sql.DBStatsс полямиWaitCountиWaitDuration); - специфика Go: рост числа горутин как признак утечки,
go_memstats_heap_inuse_bytesрядом с лимитом контейнера, доля времени в GC, троттлинг CPU в cgroup; - отсутствие сигнала:
up == 0иabsent(), а также остановка фоновой обработки, когда графики зелёные просто потому, что задача не запускалась сутки.
Обязательно скажите про оформление алерта: for: 5m от дребезга, разделение на срочные (звонок) и несрочные (тикет), ссылка на раннбук в аннотации, отсутствие пяти алертов на одну причину. И про кардинальность: user_id или полный URL в лейблах кладут Prometheus быстрее, чем сама нагрузка.
Где спотыкаются
Перечисляют только CPU и память. Загрузка процессора в 90 процентов сама по себе не авария, если запросы обслуживаются в срок.
Ставят алерт на среднее время ответа. Оно останется приличным даже тогда, когда часть пользователей уже не получает ответ вовсе.
Заводят алерты на всё подряд и без инструкции, что делать. Через месяц дежурный закрывает уведомления не читая, и настоящая авария тонет в потоке.