Grafana 11.5: AI-объяснения алертов в деле - обновляем стек мониторинга и проверяем, помогает ли это дежурному
Обновили Grafana + Loki + Tempo до последних версий. Разбираем AI-аннотации алертов из Grafana 11.5: насколько они полезны дежурному, который не знает систему глубоко.
Grafana 11.5 выходит с нативными AI-аннотациями алертов и обновлённым Incident Management
На прошлой неделе обновили стек мониторинга у нескольких клиентов: Grafana 11.5, Loki 3.x, Tempo 2.7. Повод был очевидный - Grafana 11.5 включает нативные AI-аннотации алертов и переработанный Incident Management, и нам было интересно, насколько это полезно в реальных дежурствах, а не в демо на конференции.
Спойлер: полезно, но не так и не там, где ожидали.
Что обновляли и как
Стек у клиента - типичная картина для среднего e-commerce: Grafana + Loki + Tempo, всё развёрнуто в Kubernetes через Helm-чарты. До этого жили на Grafana 11.2, Loki 2.9, Tempo 2.5. Отставание некритичное, но уже накопились нюансы - особенно в части интеграции трейсов с логами через Tempo, где в старых версиях периодически ломалась корреляция между trace ID в Loki и самим трейсом в Tempo.
Обновление делали последовательно: сначала Loki и Tempo, потом Grafana. Причина простая: Grafana 11.5 умеет работать с новыми возможностями Loki 3.x (structured metadata, улучшенные паттерны), и лучше иметь их уже поднятыми к моменту, когда Grafana начнёт их подхватывать.
Само обновление - ничего экстраординарного. Loki 3.x потребовал проверить конфигурацию compactor-а и убедиться, что retention-политики прописаны в новом формате. Tempo 2.7 - почти прозрачно, поменяли несколько ключей конфига в TraceQL-секции. Grafana 11.5 - обычный helm upgrade, плюс несколько минут на то, чтобы убедиться, что все datasource-конфигурации на месте.
AI-аннотации: что это такое в 11.5
В Grafana 11.5 появилась функция, которую они называют AI Alert Annotations. Суть: когда срабатывает алерт, Grafana может отправить контекст в LLM (через подключение к OpenAI или другому провайдеру) и получить текстовое объяснение - что могло вызвать этот алерт, на что обратить внимание, какие метрики связаны. Это объяснение появляется прямо в карточке алерта в Grafana Alerting.
Мы подключили. Токены к OpenAI у клиента уже были (они используют GPT для другого), так что технически всё поднялось за полчаса. Контекст, который Grafana передаёт в LLM - это данные самого алерта: метрики, которые его вызвали, текущие значения, пороги, плюс опционально связанные дашборды.
Честная оценка после нескольких дней
Мы специально не спешили с выводами - дали системе поработать несколько дней и посмотрели на реальные срабатывания.
Для типовых алертов - реально помогает. Алерт на высокий latency в API сервиса: LLM объяснил, что latency коррелирует с ростом числа запросов к БД, и предложил посмотреть на slow queries в логах. Дежурный, который плохо знал этот сервис, пошёл именно туда - и нашёл проблему. Без подсказки он бы ковырялся дольше. Это не магия, это просто связанный контекст, поданный человеку в момент, когда он взволнован и спешит.
Для нестандартных ситуаций - бесполезно или хуже. Алерт на OOMKilled поде дал объяснение в духе «возможно, приложение потребляет слишком много памяти, рекомендуется увеличить лимиты». Формально не ошибка, но ценность нулевая - это и так написано в самом алерте. Хуже - дежурный теряет время на чтение трёх абзацев ни о чём вместо того, чтобы сразу лезть в логи пода.
Качество объяснения сильно зависит от качества алерта. Если алерт называется high_latency и к нему подключён один дашборд с 15 панелями, LLM получает мало контекста и несёт общие слова. Если алерт подробно описан, привязан к конкретным datasource-запросам и аннотирован, объяснение получается осмысленным. Другими словами, эта функция не исправляет плохие алерты - она усиливает хорошие.
Incident Management: что поменялось
Переработанный Incident Management в 11.5 - отдельная история. Grafana добавила нативный трекинг инцидентов прямо внутри: можно открыть инцидент из алерта, добавить таймлайн событий, прикрепить дашборды и логи как доказательство. Раньше это всё вели в отдельных тикетах или в Slack, теперь хотя бы есть единое место.
Мы попробовали. Работает, но не заменяет нормальную систему тикетов - у клиента есть Jira, и туда всё равно надо дублировать. Потенциально полезно как временное рабочее место во время самого инцидента - пока идёт разбор, накидывать заметки и события прямо в Grafana, а потом переносить итог в тикет. Насколько эта workflow приживётся - посмотрим.
Что с Loki 3.x и Tempo 2.7
Помимо AI-фич, само обновление стека дало ощутимые вещи. Корреляция логов и трейсов через Derived Fields стала работать стабильнее - та самая периодическая потеря связи между trace ID в Loki и трейсом в Tempo исчезла. Structured metadata в Loki 3.x позволяет теперь хранить в индексе больше информации без взрыва cardinality - это пригодилось для pod labels, которые раньше нужно было либо убирать из индекса, либо мириться с ростом памяти.
В Tempo 2.7 заметно улучшился TraceQL: несколько запросов, которые раньше таймаутились на больших трейсах, теперь отрабатывают в норме. Это практически ценнее AI-аннотаций на данный момент.
Итог
Обновление стека рекомендуем - там есть реальные технические улучшения помимо всей AI-истории. AI-аннотации алертов - интересная функция, которая действительно сокращает время ориентировки для дежурного, не знакомого с системой. Но она не заменяет хорошо написанные алерты с понятным контекстом - она их усиливает. Плохой алерт с AI-аннотацией остаётся плохим алертом, просто с тремя абзацами текста поверх.
Для клиентов, у которых мы ведём managed-сопровождение инфраструктуры, обновление запланировали в рамках ближайших maintenance-окон. Кто интересуется настройкой AI-аннотаций под свои алерты - имеет смысл сначала провести ревизию самих алертов, иначе добавлять LLM к плохой базе нет смысла.
- ML-обнаружение аномалий в Zabbix: три месяца в продуктиве, честный отчёт · 24 марта 2025
- LLM-агент на IT-хелпдеске: первый месяц в проде · 30 января 2025