Метрики и выражения для правил алертинга
На этой странице:
- Языки выражений
- Доступные метрики сервисов
- Лейблы метрик
- Синтаксис фильтрации и примеры выражений
- Где посмотреть список метрик
- Аннотации со ссылками на дашборды
Эта страница — справочник для составления выражений в правилах алертинга. О том, как создавать правила в веб-интерфейсе (поля формы, предпросмотр, работа с правилами), см. Настройка оповещений. Обзор модуля алертинга — на странице Алертинг в Proto Observability Platform.
Языки выражений
Proto Observability Platform поддерживает выражения в правилах алертинга, написанные на языках PromQL и MetricsQL.
Правило срабатывает, когда выражение возвращает результат. Например, выражение ... > 100 вернёт серии только для тех сущностей, у которых значение превышает порог 100, — именно по ним и сработает алерт.
Доступные метрики сервисов
Ниже перечислены ключевые метрики сервисов, доступные для правил алертинга. Список не исчерпывающий: в правилах можно использовать любую метрику из хранилища метрик (инфраструктурные, Kubernetes, метрики БД и др.) — полный каталог доступен в Браузере метрик. Кроме того, набор метрик, для которых строится базовая линия, можно расширить через конфигурацию (см. Выявление аномалий → Как добавить метрики).
Ключевые метрики сервисов:
| Метрика | Описание |
|---|---|
services_calls | Количество вызовов сервиса за интервал |
services_callduration | Среднее время отклика сервиса, в миллисекундах |
services_errorcallsperc | Доля вызовов с ошибками, в процентах (от 0 до 100) |
services_apdex | Значение APDEX сервиса, от 0 до 1 (1 — все запросы обслужены в пределах целевого времени) |
services_calls_prophet | Прогноз количества вызовов сервиса, построенный по базовой линии |
services_callduration_prophet | Прогноз времени отклика сервиса, построенный по базовой линии |
services_errorcallsperc_prophet | Прогноз доли вызовов с ошибками, построенный по базовой линии |
Для части метрик платформа дополнительно строит ML-базовую линию — это метрики с суффиксом _prophet. Значения прогноза различаются по лейблу value_type: yhat — сам прогноз, yhat_lower и yhat_upper — нижняя и верхняя границы нормы. Эти метрики используются встроенными правилами выявления аномалий — см. Выявление аномалий.
Метрики ключевых бизнес-транзакций
Для операций, отмеченных как ключевые бизнес-транзакции, в хранилище метрик выгружается отдельный набор. Значения считаются по OLAP-слою в разрезе сервиса и операции, лейблы: service, service_id, endpoint (имя операции) и opName (то же имя в Base64 — в таком виде его ждут ссылки на дашборды).
| Метрика | Описание |
|---|---|
calls_keybusinesstransactioncount | Число вызовов ключевой бизнес-транзакции за интервал |
calls_keybusinesstransactionduration | Среднее время выполнения ключевой бизнес-транзакции, в миллисекундах |
calls_keybusinesstransactionerrorperc | Доля вызовов ключевой бизнес-транзакции с ошибками, в процентах (от 0 до 100) |
calls_keybusinesstransactioncount_prophet | Прогноз числа вызовов ключевой бизнес-транзакции, построенный по базовой линии |
calls_keybusinesstransactionduration_prophet | Прогноз времени выполнения ключевой бизнес-транзакции, построенный по базовой линии |
calls_keybusinesstransactionerrorperc_prophet | Прогноз доли вызовов с ошибками, построенный по базовой линии |
Метрики для дашбордов
Перечисленные метрики предназначены для алертинга. Полный список метрик, доступных для визуализации на OLAP-дашбордах, можно посмотреть при создании дашборда в режиме «OLAP Мастер» — см. руководство Кастомные дашборды.Кроме метрик сервисов в хранилище метрик выгружаются метрики бизнес-процессов — pobp_bp_step_* (потоки, дошедшие до шага, потери на шаге, время перехода) и pobp_bp_process_* (запуски, ошибки, длительность процесса) с лейблами businessProcessName и stepName (пробелы и тире в значениях заменены на подчёркивание). Это мгновенные значения за скользящее окно, а не счётчики: rate() и increase() по ним не применяются. Полный список метрик, встроенные правила и примеры выражений — в разделе Алерты и SLO по бизнес-процессу.
Лейблы метрик
Для сервисов доступны следующие лейблы метрик:
service: имя сервиса, аналогичное отображаемому имени сервиса в разделеПриложения>Сервисы;service_id: внутренний идентификатор сервиса для генерации ссылки на дашборд (см. Аннотации со ссылками на дашборды);host,service_id_host: хост и его идентификатор, на котором наблюдается сервис (используются в ссылках на дашборды сервера и контейнера).
Синтаксис фильтрации и примеры выражений
Для применения в правилах фильтра по конкретному сервису используйте синтаксис метрика{лейбл="значение"}.
Например, выражение services_callduration{service="credit-bureau-service"} вернёт среднее время отклика сервиса credit-bureau-service в миллисекундах.
Пример выражения для правила (время отклика сервиса больше 100 мс):
avg(services_callduration{service="credit-bureau-service"}) by (service, service_id) > 100
Разбор выражения:
services_callduration— метрика: время отклика сервиса (в миллисекундах);{service="credit-bureau-service"}— фильтр по имени сервиса;avg(...) by (service, service_id) > 100— агрегация по лейбламserviceиservice_id(лейблservice_idнужен, чтобы в аннотациях получить ссылку на дашборд сервиса).
Где посмотреть список метрик
Полный список доступных метрик с поиском доступен в Браузере метрик (Metric Explorer): откройте раздел Метрики > Браузер в главном меню. Введите часть имени метрики в поле поиска — например, services покажет все метрики сервисов.
Скриншот: Браузер метрик — поиск по каталогу метрик (запрос services).
Браузер метрик также позволяет изучать лейблы метрик, количество временных рядов и строить запросы визуально. Подробнее — в руководстве Браузер метрик и построитель PromQL-запросов.
Аннотации со ссылками на дашборды
Аннотации и лейблы задаются в правиле алертинга (см. Настройка оповещений → Лейблы и аннотации):
- аннотации позволяют добавлять дополнительные метки к алертам; аннотации приходят в уведомления (Email, Telegram, Webhook и т. д.);
- лейблы позволяют группировать алерты и используются в политиках маршрутизации алертов.
Зарезервированные ключи (имена) аннотаций формируют кликабельные ссылки на дашборды Proto OBP:
dashboard,dashboardService— ссылка на дашборд сервиса. Используйте следующее значение:{{ $externalURL }}/dashboard/GENERAL/Service/{{ .Labels.service_id | reReplaceAll "__" "==" | reReplaceAll "_" "=" }}/Proto-General-ServicedashboardHost— ссылка на дашборд сервера. Используйте следующее значение:{{ $externalURL }}/dashboard/OS_LINUX/Service/{{ .Labels.service_id_host }}/Proto-Linux-ServicedashboardContainer— ссылка на дашборд контейнера. Используйте следующее значение:{{ $externalURL }}/dashboard/OS_LINUX/Endpoint/{{ .Labels.service_id_host }}/{{ .Labels.service_id_host }}_{{ .Labels.service_id_container }}/Proto-Linux-Docker
Примеры использования аннотаций — ссылок на дашборды:
Telegram-уведомления:

Веб-интерфейс Proto OBP:
