Skip to content

Обзор проверок Prometheus

Glaber может запрашивать показатели, представленные в формате строки Prometheus.

Чтобы начать сбор данных с помощью Prometheus, необходимо выполнить две операции:

  • Определить основной элемент данных — HTTP-запрос, который указывает на конечную точку данных. Например, это может быть адрес https:///metrics.
  • Определить зависимые элементы данных, которые используют функцию предварительной обработки Prometheus для запроса необходимых данных из показателей, полученных через основной элемент данных.

Существует два способа предварительной обработки данных в Prometheus:

  • Шаблон Prometheus применяется в стандартных компонентах для получения данных из Prometheus.
  • Prometheus в формате JSON используется в стандартных компонентах и для обнаружения на низком уровне. В этом случае данные Prometheus возвращаются в формате JSON.

Массовая обработка

В рамках обработки данных, которые зависят друг от друга, поддерживается массовая обработка. Чтобы включить функции кэширования и индексации, необходимо выполнить первый этап предварительной обработки с использованием шаблона Prometheus.

После того как шаблон Prometheus будет выполнен, данные, полученные в результате анализа, будут кэшированы и проиндексированы в соответствии с первым условием в шаблоне. Этот кэш будет использоваться повторно при обработке других зависимых элементов данных в этом пакете.

Для оптимальной работы необходимо, чтобы первая метка содержала как можно больше различных значений.

В случае, когда перед началом работы требуется провести дополнительную подготовку, её можно включить либо в основной процесс, либо в дополнительный, который станет основой для последующих.

Конфигурация

В случае если у вас уже настроен основной компонент HTTP, необходимо создать зависимый элемент данных, который будет использовать этап предварительной обработки Prometheus.

Для этого выполните следующие действия (Рисунок 1):

  1. В форме конфигурации укажите общие параметры для зависимого элемента данных.

  2. Перейдите на вкладку «Предварительная обработка».

  3. Выберите вариант предварительной обработки Prometheus. Вы можете выбрать шаблон Prometheus или вариант Prometheus в формате JSON.

image

Рисунок 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=~".*"} == <значение>