Метки и аннотации
Метки и аннотации добавляют дополнительную информацию об оповещении с помощью пар ключ/значение:
- Метки используются, чтобы отличать оповещение от всех остальных и решать, как ими управлять.
- Аннотации предоставляют дополнительные сведения для дежурных, помогая им понять и устранить потенциальные проблемы.
Метки
Метки (Labels) — это уникальные идентификаторы экземпляра оповещения. Их можно использовать для поиска, отключения и маршрутизации уведомлений.
Примеры меток: server=server1 или team=backend. Каждое правило оповещения может иметь более одной метки, а полный набор меток правила оповещения называется его набором меток. Именно этот набор меток идентифицирует оповещение.
Например, экземпляр оповещения может иметь набор меток {alertname="High CPU usage",server="server1"}, тогда как другой экземпляр — набор меток {alertname="High CPU usage",server="server2"}. Это два разных экземпляра оповещений, поскольку, хотя их метки alertname совпадают, метки server различаются.
Метки — фундаментальный компонент оповещений:
- Именно полный набор меток оповещения уникально идентифицирует экземпляр оповещения.
- Интерфейс оповещений показывает метки для каждого экземпляра оповещения, созданного при вычислении этого правила.
- Политики уведомлений и silences используют метки, чтобы сопоставлять экземпляры оповещений и маршрутизировать их в точки контакта либо прекращать их уведомления.
- Точки контакта могут включать информацию из меток в уведомительные сообщения.
Типы меток
Набор меток оповещения может содержать три типа меток:
Пользовательские метки
Метки, которые вы настраиваете вручную в правиле оповещения, чтобы идентифицировать создаваемые экземпляры оповещений и управлять оповещениями. Обычные пользовательские метки в зависимости от сценария: severity, priority, team и service.
Кроме того, вы можете использовать шаблон, чтобы настроить значение метки и генерировать динамические значения из данных запроса.
Метки запроса
Метки запроса — это метки, возвращаемые запросом к источнику данных.
Метки запроса могут порождать несколько экземпляров оповещений из одного правила оповещения, помогая отличать оповещения по разным данным. В этом примере метка instance создаёт экземпляр оповещения для каждого сервера.
Зарезервированные метки
Зарезервированные метки добавляются Grafana автоматически:
alertname: имя правила оповещения.grafana_folder: название папки, содержащей оповещение.
Метки с префиксом grafana_ зарезервированы Grafana для особого использования. Зарезервированные метки можно отключить с помощью опции
unified_alerting.reserved_labels.
Note
Два правила оповещений не могут создавать экземпляры оповещений с одинаковыми метками. Если два правила оповещений имеют одинаковые метки, например
foo=bar,bar=bazиfoo=bar,bar=baz, то один из созданных экземпляров оповещений отбрасывается.Убедитесь, что набор меток оповещения не содержит двух или более меток с одинаковым именем.
- Если настроенная метка имеет то же имя, что и метка запроса к источнику данных, она заменяет метку источника данных.
- Если настроенная метка имеет то же имя, что и зарезервированная метка, она опускается.
В Grafana есть встроенный Alertmanager, поддерживающий ключи и значения меток в кодировке Unicode. Если вы используете внешний Prometheus Alertmanager, ключи меток должны быть совместимы с их моделью данных.
Это означает, что ключи меток должны содержать только ASCII-буквы, цифры и подчёркивания.
Ключи меток также должны соответствовать регулярному выражению [a-zA-Z_][a-zA-Z0-9_]*.
Любые недопустимые символы удаляются или заменяются движком оповещений Grafana перед отправкой во внешний Alertmanager по следующим правилам:
- Пробельные символы удаляются.
- ASCII-символы заменяются на
_. - Все остальные символы заменяются их шестнадцатеричным представлением в нижнем регистре.
Если это первый символ, перед ним добавляется
_.
Пример: пара ключ/значение метки Alert! 🔔="🔥" превратится в Alert_0x1f514="🔥".
Если несколько ключей меток нормализуются в одно и то же значение, к дубликатам добавляется короткий хеш исходной метки в качестве суффикса.
Аннотации
Аннотации добавляют экземплярам оповещений дополнительную информацию, помогая дежурным выявить и устранить потенциальные проблемы.
Создавайте понятные и самодостаточные аннотации, чтобы первые дежурные могли провести расследование, не нуждаясь в глубоком знании настроек оповещений.
Аннотации отображаются в Grafana и по умолчанию включаются в уведомления. Grafana предлагает несколько необязательных аннотаций, которые вы можете редактировать:
summary: краткая сводка о том, что обнаружило оповещение и почему.description: подробное описание того, что произошло и что делает оповещение.runbook_url: страница runbook для операторов, управляющих потенциальным инцидентом.__dashboardUid__и__panelId__: связывают оповещение с дашбордом и панелью, чтобы упростить расследование оповещения.
Например, вы можете отредактировать аннотацию summary, чтобы объяснить, почему сработало оповещение:
CPU usage has exceeded 80% for the last 5 minutes.
А также отредактировать аннотацию description, чтобы дать больше контекста и указать, как реагировать:
The web server's CPU has exceeded 80% for more than 5 minutes.
This indicates that the system is under heavy load and may result in an outage.
Consider scaling the server's resources and investigating bottlenecks.
Как и метки, аннотации могут использовать шаблон, чтобы включать динамические данные из запросов.