Обзор проверок Prometheus
Glaber может запрашивать показатели, представленные в формате строки Prometheus.
Чтобы начать сбор данных с помощью Prometheus, необходимо выполнить две операции:
- Определить основной элемент данных — HTTP-запрос, который указывает на конечную точку данных. Например, это может быть адрес https://
/metrics. - Определить зависимые элементы данных, которые используют функцию предварительной обработки Prometheus для запроса необходимых данных из показателей, полученных через основной элемент данных.
Существует два способа предварительной обработки данных в Prometheus:
- Шаблон Prometheus применяется в стандартных компонентах для получения данных из Prometheus.
- Prometheus в формате JSON используется в стандартных компонентах и для обнаружения на низком уровне. В этом случае данные Prometheus возвращаются в формате JSON.
Массовая обработка
В рамках обработки данных, которые зависят друг от друга, поддерживается массовая обработка. Чтобы включить функции кэширования и индексации, необходимо выполнить первый этап предварительной обработки с использованием шаблона Prometheus.
После того как шаблон Prometheus будет выполнен, данные, полученные в результате анализа, будут кэшированы и проиндексированы в соответствии с первым условием в шаблоне. Этот кэш будет использоваться повторно при обработке других зависимых элементов данных в этом пакете.
Для оптимальной работы необходимо, чтобы первая метка содержала как можно больше различных значений.
В случае, когда перед началом работы требуется провести дополнительную подготовку, её можно включить либо в основной процесс, либо в дополнительный, который станет основой для последующих.
Конфигурация
В случае если у вас уже настроен основной компонент HTTP, необходимо создать зависимый элемент данных, который будет использовать этап предварительной обработки Prometheus.
Для этого выполните следующие действия (Рисунок 1):
-
В форме конфигурации укажите общие параметры для зависимого элемента данных.
-
Перейдите на вкладку «Предварительная обработка».
-
Выберите вариант предварительной обработки Prometheus. Вы можете выбрать шаблон Prometheus или вариант Prometheus в формате JSON.
Рисунок 1 — Настройка предварительной обработки Prometheus
Следующие параметры относятся к шаблону Prometheus предварительной обработки:
Параметр | Описание |
---|---|
Шаблон | Для определения требуемого шаблона данных вы можете использовать язык запросов, аналогичный языку запросов Prometheus, например: ▶ <название показателя> - выбрать по названию показателя; ▶ {name="<имя показателя>"} - выбрать по имени показателя; ▶ {name=~"<регулярное выражение>"} - выбрать по имени показателя, соответствующему регулярному выражению; ▶ {<имя метки>="<значение метки>", ...} - выбрать по имени метки; ▶ {<имя метки> =~"<регулярное выражение>", ...} - выбрать по имени метки, соответствующему регулярному выражению; ▶ {имя=~".*"}==< значение> - выберите по значению показателя Или по комбинации вышеперечисленных параметров: <имя метрики>{<имя label1>="<значение label1>",<имя label2>=~"<регулярное выражение>",...}==<значение>. Значением метки может быть любая последовательность символов UTF-8, но обратная косая черта, двойные кавычки и символы перевода строки должны быть экранированы как \, \" и \n соответственно; другие символы не должны быть экранированы. |
Обработка результатов | Укажите, нужно ли возвращать значение, метку или применить соответствующую функцию (если шаблон соответствует нескольким строкам и результат необходимо агрегировать): ▶ значение - возвращает значение показателя (ошибка при совпадении нескольких строк); ▶ метка — возвращаемое значение метки, указанной в поле Метка (ошибка, если совпадают несколько метрик); ▶ sum - возвращает сумму значений; ▶ min - возвращает минимальное значение; ▶ max - возвращает максимальное значение; ▶ avg - возвращает среднее значение; ▶ count — возвращает количество значений. Это поле доступно только для шаблона Prometheus. |
Результат | Укажите имя метки (необязательно). В этом случае возвращается значение, соответствующее имени метки. Это поле доступно только для опции шаблона Prometheus, если в поле обработки результатов выбрана метка. |
Prometheus в формате JSON
Информацию, полученную от Prometheus, можно применять для выявления проблем на низком уровне. Для этого необходимо преобразовать данные в формат JSON, и опция «преобразование Prometheus в JSON» позволит получить именно такой результат.
Сравнение языков запросов
В следующей таблице перечислены различия и сходства между PromQL и языком запросов предварительной обработки Prometheus.
Отличия
PromQL | Предварительная обработка Prometheus | |
---|---|---|
Цель запроса | Сервер Prometheus | Обычный текст в формате Prometheus exposition |
ВОЗВРАТ | Мгновенный вектор | Значение метрики или метки (шаблон Prometheus) Массив метрик для одного значения в JSON (Prometheus в JSON) |
Операторы сопоставления меток | =, !=, =~, !~ | =, !=, =~, !~ |
Регулярное выражение, используемое для сопоставления имен меток или показателей | RE2 | PCRE |
Операторы сравнения | Посмотреть список | Для фильтрации значений поддерживается только == (равно) |
Сходства
PromQL | Предварительная обработка Prometheus | |
---|---|---|
Выбор по имени метрики, равному строке | <название метрики> или {name="<название метрики>"} | <название метрики> или {name="<название метрики>"} |
Выбор по имени метрики, соответствующему регулярному выражению | {name=~"<регулярное выражение>"} | {name=~"<регулярное выражение>"} |
Выбор по <имени метки> значения, равного string | {<имя метки>="<значение метки>",...} | {<имя метки>="<значение метки>",...} |
Выбор по <имени метки> значения, соответствующего регулярному выражению | {<имя метки>=~"<регулярное выражение>",...} | {<имя метки>=~"<регулярное выражение>",...} |
Выбор по значению, равному string | {name=~".*"} == <значение> | {name=~".*"} == <значение> |