Запись метрик в Monitoring
Monitoring — сервис для сбора и хранения метрик, а также их отображения на дашбордах. Отправляемые в Monitoring данные содержат значения измеряемых величин — метрики — и описывающие их метки.
Например, чтобы отслеживать количество сбоев приложения, в качестве метрики можно использовать число сбоев за интервал времени. Название хоста и версия приложения при сбое являются метками. В интерфейсе Monitoring можно выполнять агрегацию метрик по меткам.
Пример записи метрик из Yandex Query в Monitoring:
INSERT INTO `monitoring`.custom
SELECT
`my_timestamp`,
host_name,
app_version,
exception_count,
"exception_monitor" AS service_type
FROM $query;
При потоковой обработке данных Yandex Query может отправлять в Monitoring результаты выполнения запроса в виде метрик и их меток.
Настройка соединения
Чтобы настроить отправку метрик в Monitoring:
-
Перейдите
в сервис Yandex Query. -
На панели слева выберите Соединения.
-
Нажмите Создать.
-
В открывшемся окне в поле Имя укажите название соединения с Monitoring.
-
В поле Тип выберите
Monitoring. -
В поле Сервисный аккаунт выберите сервисный аккаунт, который будет использоваться для записи метрик, или создайте новый и назначьте ему роль
monitoring.editor.Чтобы использовать сервисный аккаунт, пользователю нужна роль
iam.serviceAccounts.user. -
Нажмите Создать.
Модель данных
Запись метрик в Monitoring выполняется с помощью SQL-выражения следующего вида:
INSERT INTO
<соединение>.custom
SELECT
<поля>
FROM
<запрос>;
Где:
<соединение>— название соединения с Monitoring, созданного в предыдущем разделе.<поля>— список полей, содержащих временную метку, метрики и их метки.<запрос>— запрос-источник данных Yandex Query.
Примечание
Для записи пользовательских метрик используйте конструкцию INSERT INTO <соединение>.custom. В ней custom — зарезервированное имя в Monitoring.
Для записи метрик используется метод write API Monitoring. Передайте следующие данные:
- временную метку;
- список метрик с указанием их типа — Yandex Query поддерживает типы
DGAUGEиIGAUGE; - список меток.
Yandex Query автоматически выводит семантику параметров из SQL-запроса.
|
Тип поля |
Описание |
Ограничения |
|
Временной: |
Временная метка всех метрик |
В запросе может быть только одно поле с временной меткой. |
|
Целочисленный: |
Значения метрик типа |
Название поля из SQL-выражения является именем метрики. В одном запросе может быть неограниченное число метрик. |
|
С плавающей точкой: |
Значения метрик типа |
Название поля из SQL-выражения является именем метрики. В одном запросе может быть неограниченное число метрик. |
|
Текстовый: |
Значения меток |
Название поля из SQL-выражения является именем метки, а текстовое значение — значением метки. В одном запросе может быть неограниченное число меток. |
Другие типы данных в полях не допускаются.
Пример записи метрик
Пример запроса для записи метрик из Yandex Query в Monitoring:
INSERT INTO
`monitoring`.custom
SELECT
`my_timestamp`,
host AS host_name,
app_version,
exception_count,
"exception_monitor" AS service_type
FROM $query;
Где:
|
Поле |
Тип |
Описание |
|
|
Название соединения с Monitoring. |
|
|
|
Источник данных в SQL-запросе. Это может быть подзапрос YQL, в том числе подключение к источнику данных. |
|
|
|
Метка времени |
Источник данных — столбец |
|
|
Метрика |
Источник данных — столбец |
|
|
Метка |
Источник данных — столбец |
|
|
Метка |
Источник данных — столбец |
Пример результата выполнения запроса в Monitoring:
