Правила записи
Правила записи позволяют на основе полученных метрик вычислять новые значения и сохранять их во временных рядах. Это помогает настроить анализ данных под свою систему и оптимизировать работу Yandex Managed Service for Prometheus®.
Особенности вычисления правил
-
Для согласования правил записи с результатами запросов на чтение в сервисе установлена глобальная задержка вычислений в 2 минуты. Это означает, что правила применяются к данным не сразу, а через 2 минуты после их поступления. Это позволяет всем агентам сбора метрик передать данные, прежде чем они будут прочитаны сервисом и записаны как результат выполнения правил записи.
-
Лимит количества серий в результате вычисления правила по умолчанию равен 1000. Максимальное возможное значение лимита — 10000.
Требования к правилам записи
В Prometheus вы можете загружать ваши существующие файлы с правилами записи (recording rules
Примечание
Имя файла может содержать только буквы латинского алфавита, цифры, точки, тире и подчеркивания. Максимальная длина файла — 256 символов. Длина имени группы не может превышать 256 символов.
Вы можете управлять файлами с правилами записи через консоль управления
Предварительная настройка для работы с API
API представлен набором REST-ресурсов, которые находятся по адресу https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules
.
Чтобы начать выполнять запросы:
- Установите cURL
. - Аутентифицируйтесь в API.
- Создайте воркспейс и скопируйте его идентификатор, чтобы использовать в адресе запросов.
Добавление и замена файла с правилами записи
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите или создайте воркспейс.
- Перейдите на вкладку Recording rules.
- Если у вас еще нет загруженных файлов, нажмите Добавить файл и выберите файл
.yml
с правилами. - Чтобы добавить еще один файл, нажмите Добавить файл.
- Чтобы заменить существующий файл, справа от него нажмите
> Заменить файл.
-
Закодируйте содержимое файла в Base64
согласно RFC 4648:cat recording-rule.yaml # groups: # - name: example # rules: # - record: example # expr: up base64 -i recording-rule.yaml # Z3JvdXBzOgogIC0gbmFtZTogZXhhbXBsZQogICAgcnVsZXM6CiAgICAtIHJlY29yZDogZXhhbXBsZQogICAgICBleHByOiB1cA==
-
Сохраните результат в JSON-файл:
body.json
{ "name": "recording-rules", "content" : "Z3JvdXBzOgogIC0gbmFtZTogZXhhbXBsZQogICAgcnVsZXM6CiAgICAtIHJlY29yZDogZXhhbXBsZQogICAgICBleHByOiB1cA==" }
-
Создайте или замените файл с правилами записи:
export IAM_TOKEN=<IAM-токен> curl \ --request PUT \ --header "Content-Type: application/json" \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data "@body.json" \ "https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules"
В случае успешного запроса будет возвращен HTTP-код 204
, иначе — текст ошибки.
Если в результате замены файла были удалены правила или группы правил, они перестанут вычисляться. Все новые правила и группы правил начнут вычисляться.
Просмотр списка файлов
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите воркспейс.
- Перейдите на вкладку Recording rules.
Выполните запрос:
export IAM_TOKEN=<IAM-токен>
curl \
--request GET \
--header "Authorization: Bearer ${IAM_TOKEN}" \
"https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules"
Пример ответа:
{
"files": [
"recording-rules"
]
}
Просмотр содержимого файла
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите воркспейс.
- Прейдите на вкладку Recording rules.
- Справа от файла нажмите
> Код файла.
Выполните запрос:
export IAM_TOKEN=<IAM-токен>
curl \
--request GET \
--header "Authorization: Bearer ${IAM_TOKEN}" \
"https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules/recording-rules"
Пример ответа:
{
"name": "recording-rules",
"content": "Z3JvdXBzOgogIC0gbmFtZTogZXhhbXBsZQogICAgcnVsZXM6CiAgICAtIHJlY29yZDogZXhhbXBsZQogICAgICBleHByOiB1cA=="
}
Просмотр состояния вычисления файла
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите воркспейс.
- Прейдите на вкладку Recording rules.
- Выберите файл с правилами. На открывшейся странице будет отражено состояние последних вычислений по данному правилу.
Вычисление каждого правила во всех группах файла можно получить, используя REST-ресурс snapshots
. Каждый снимок содержит информацию о статусе, ошибке, имени правила и о том, как долго оно вычислялось.
Выполните запрос:
export IAM_TOKEN=<IAM-токен>
curl \
--request GET \
--header "Authorization: Bearer ${IAM_TOKEN}" \
"https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules/recording-rules/snapshots"
Пример ответа:
{
"snapshotByGroup": {
"example": [
{
"state": "OK",
"error": "",
"evaluationTimeMs": 21,
"evaluatedAtTimeEpochMs": 1710490243322,
"record": "example"
}
]
}
}
Возможные состояния правила:
NOT_EVALUATED_YET
— файл загружен, но вычисление еще не началось.OK
— успешное вычисление.LIMIT_EXCEEDED
— правило вернуло больше временных рядов, чем разрешено в полеlimit
в YAML-файле. Для таких правил не сохраняется частичный результат вычислений.TIMEOUT
— правило вычислялось слишком долго.UNEXPECTED_RESULT_TYPE
— вычисление вернуло неожиданный результат, например строку.UNKNOWN_ERROR
— общая ошибка, которая не может быть описана предыдущими состояниями.
Удаление файла
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите воркспейс.
- Прейдите на вкладку Recording rules.
- Справа от файла нажмите
> Удалить.
Выполните запрос:
export IAM_TOKEN=<IAM-токен>
curl \
--request DELETE \
--header "Authorization: Bearer ${IAM_TOKEN}" \
"https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules/recording-rules"
Скачивание файла
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите воркспейс.
- Прейдите на вкладку Recording rules.
- Слева от файла нажмите
> Скачать файл.
© 2024 Linux Foundation. Все права защищены. Linux Foundation зарегистрировала товарные знаки и использует товарные знаки. Список товарных знаков Linux Foundation см. на странице Trademark Usage