Группировка уведомлений об оповещениях
Группировка в Grafana Alerting позволяет объединять связанные оповещения в меньшее число уведомлений. Это особенно важно, если уведомления доставляются дежурным, например инженерам по вызову, где получение множества уведомлений за короткий период времени может быть ошеломляющим. В некоторых случаях это может негативно сказаться на способности дежурного реагировать на инцидент. Например, рассмотрите крупный сбой, когда многие из ваших систем недоступны. В этом случае группировка может стать разницей между одним телефонным звонком и сотней звонков.
Tip
Практический пример группировки см. в нашем учебнике по началу работы с группировкой.
Группировка уведомлений
Группировка объединяет похожие экземпляры оповещений за определённый период в одно уведомление, снижая шум от оповещений.
В политике уведомлений вы можете настроить, как группировать несколько оповещений в одно уведомление:
- Опция
Group byзадаёт критерии группировки входящих оповещений внутри политики. По умолчанию — по правилу оповещения. - Параметры времени определяют, когда и как часто отправлять уведомление.
Экземпляры оповещений группируются вместе, если они имеют одинаковые значения меток для меток, настроенных в опции Group by.
Например, если для опции Group by задана метка team:
alertname:foo, team=frontendиalertname:bar, team=frontendнаходятся в одной группе.alertname:foo, team=frontendиalertname:qux, team=backendнаходятся в другой группе.
Группировка по правилу оповещения или меткам
По умолчанию политики уведомлений в Grafana группируют оповещения по правилу оповещения. В частности, они группируются с помощью меток alertname и grafana_folder, так как имена правил оповещений не уникальны в пределах папок.
Если вы хотите группировать оповещения по другим меткам, а не по правилу оповещения, измените опцию Group by на любую другую комбинацию меток.
Единая группа для всех оповещений
Если вы хотите сгруппировать все оповещения, обрабатываемые политикой уведомлений, в одну группу (без группировки уведомлений по правилу оповещения или другим меткам), оставьте Group by пустым в политике по умолчанию.
Отключение группировки
Если вы хотите получать каждое оповещение как отдельное уведомление, вы можете сделать это, группируя по специальной метке ..., гарантируя, что другие метки не присутствуют.
Параметры времени
В политике уведомлений вы также можете настроить, как часто отправляются уведомления для каждой группы оповещений. В политике уведомлений к группам применяются три различных таймера:
- Group wait: время ожидания перед отправкой первого уведомления для новой группы оповещений.
- Group interval: время ожидания перед отправкой уведомления об изменениях в группе оповещений.
- Repeat interval: время ожидания перед отправкой уведомления, если группа не изменилась с момента последнего уведомления.
Эти таймеры сокращают количество отправляемых уведомлений. Задерживая доставку уведомлений, входящие оповещения можно сгруппировать в одно уведомление вместо множества.
Group wait
По умолчанию: 30 секунд
Group wait — это длительность, которую Grafana выжидает перед отправкой первого уведомления для новой группы оповещений.
Эта опция помогает сократить количество уведомлений, отправляемых для связанных оповещений, возникающих в течение короткого промежутка времени. Чем длиннее group wait, тем больше времени есть у других оповещений, чтобы попасть в первоначальное уведомление о новой группе. Чем короче group wait, тем раньше отправляется первое уведомление, но с риском не включить некоторые оповещения.
Если оповещение разрешается до истечения длительности, уведомление об этом оповещении не отправляется. Это снижает шум от колеблющихся оповещений.
Пример
Рассмотрим политику уведомлений, которая:
- Сопоставляет все экземпляры оповещений с меткой
team— сопоставляемые метки равныteam=~.+. - Группирует уведомления по метке
team— одна группа для каждого отдельногоteam. - Устанавливает таймер Group wait в
30s.
Group interval
По умолчанию: 5 минут
Если оповещение опоздало и не попало в первое уведомление из-за group wait, оно включается в последующие уведомления после group interval.
Group interval — это длительность ожидания перед отправкой уведомлений об изменениях группы. Изменение группы происходит, когда:
- В группу добавляется новое сработавшее оповещение.
- Существующее оповещение разрешается.
Пример
Вот соответствующие выдержки из предыдущего примера:
А ниже продолжение примера с таймером Group interval, установленным в 5 минут:
Как это работает
После отправки первого уведомления для новой группы оповещений запускается таймер group interval.
Когда таймер group interval истекает, система сбрасывает таймер group interval и отправляет уведомление только при наличии изменений группы. Этот процесс повторяется, пока оповещения не закончатся.
Важно отметить, что экземпляр оповещения покидает группу после разрешения и уведомления об изменении его состояния.
Когда таймер group interval истекает и оповещений не остаётся, группа удаляется. Таймер group wait затем запускается снова при поступлении нового оповещения.
Repeat interval
По умолчанию: 4 часа
Repeat interval действует как напоминание о том, что оповещения в группе всё ещё срабатывают.
Таймер repeat interval определяет, как часто отправляются (или повторяются) уведомления, если группа не изменилась с момента последнего уведомления.
Как это работает
Repeat interval вычисляется каждый раз при сбросе group interval. Если группа оповещений не изменилась и время с момента последнего уведомления превысило repeat interval, отправляется уведомление как напоминание о том, что оповещения всё ещё срабатывают.
Repeat interval должен не только быть больше или равен group interval, но и быть кратным group interval. Если Repeat interval не кратен group interval, он приводится к кратному значению. Например, если ваш Group interval равен 5 минутам, а Repeat interval — 9 минутам, Repeat interval округляется вверх до ближайшего кратного 5, то есть до 10 минут.
Максимальная длительность repeat interval — 5 дней, что ограничено значением по умолчанию настройки notification_log_retention в Grafana.
Пример
Вот соответствующие выдержки из предыдущего примера:
А ниже продолжение примера с таймером Repeat interval, установленным в 4 часа: