Получение метрик в формате Prometheus text-based exposition

В этом разделе описано, как получить метрики из облака Cloud.ru в формате Prometheus text-based exposition по pull-модели (scraping).

Перед началом работы

Для работы с API личного кабинета Cloud.ru потребуется:

Подсказка

Пример запроса с project_id вашего проекта для работы с API Cloud.ru можно найти в личном кабинете в разделе Мониторинг → Публичные API, блок Получение метрик.

Получение метрик с помощью curl-запроса

Чтобы получить метрики:

  1. Выполните запрос:

    curl - X GET -- location "https://monitoring.api.cloud.ru/v2/ {project_id} /scrape_metrics?match=условие" \ - H "Authorization: Bearer $TOKEN"
  2. В теле запроса укажите следующие параметры:

    • match — обязательный параметр. Фильтр для задания условий и получения данных о метриках. Любой валидный запрос в promQL формате, который возвращает массив значений. Например:

      • match={product_type="enterprise_network"} — возвращает все метрики выделенных устройств NSX Provider Gateway/T0/Edge/T1;

      • match={product_instаnce_id="abcd..."} — возвращает все метрики экземпляра продукта;

      • match=usage_average — возвращает метрики по использованию процессора виртуальных машин платформы Облако VMware.

    • start — опциональный параметр. Начало временного интервала, за который необходимо получить данные о метриках.

    • end — опциональный параметр. Конец временного интервала, за который необходимо получить данные о метриках.

В ответ на запрос возвратятся последние значения метрик, удовлетворяющих запросу, за указанный временной интервал.

metric_name { label_name = "label_value" , label_name = "label_value" , ... } value timestamp

Где:

  • metric_name — название метрики;

  • label_name — название лейбла метрики;

  • label_value — значение лейбла;

  • value — значение метрики;

  • timestamp — временная метка, указанная в Unix timestamp в миллисекундах.

Каждому временному ряду соответствует отдельная строчка в получаемом массиве данных. Например:

{
nsx . gw . port . tx . total_packets { alias = "abcd-VDC-1-edge02" , host_id = "uuid" , host_name = "abcd-VDC-1-edge02-qwerty" , interface_name = "192.168.1.254/-ba9b508c..." , interface_type = "Tx segment downlink" , product_type = "enterprise_network" , project_id = "uuid" , region = "Lab" , service_instance_id = "uuid" , tenant_name = "abcd-UI-QWERTY" } 1.027992130413 1703848117458
nsx . gw . port . tx . total_packets { alias = "abcd-VDC-1-edge02" , host_id = "uuid" , host_name = "abcd-VDC-1-edge02-qwerty" , interface_name = "Uplink" , interface_type = "T1 uplink" , product_type = "enterprise_network" , project_id = "uuid" , region = "Lab" , service_instance_id = "uuid" , tenant_name = "abcd-UI-QWERTY" } 2.159119950351 1703848117457
}

Получение метрик с помощью vmagent

Для автоматизации сбора метрик по pull-модели можно использовать Prometheus или другой удобный инструмент.

См.также

Подробнее о настройках сборщика метрик в документации scrape_configs.

Пример конфигурации vmagent:

config:
global:
scrape_interval: 30s #периодичность сбора
scrape_configs:
- job_name: 'cloud.ru_project1'
static_configs:
- targets:
- monitoring.api.cloud.ru #эндпоинт публичного API сервиса мониторинга
labels: #статическое назначение дополнительных лейблов в собираемые метрики
custom_label_name: custom_label_value
honor_labels: true #отдает приоритет исходным лейблам таймсерий в случае конфликта наименований с лейблами, назначаемыми статически
honor_timestamps: true #сохраняет переданный таймстемп
metrics_path: /v2/{project_id}/scrape_metrics?match={product_type="enterprise_network"} #путь для получения метрик. Необходимо поставить свой project_id и фильтр метрик после match
scheme: https
oauth2: #настройка обращения в IAM для выдачи JWT токена для подписи запросов
client_id: "%{CLIENT_ID}"
client_secret: "%{CLIENT_SECRET}"
token_url: "https://id.cloud.ru/auth/system/token"
endpoint_params:
"grant_type": "access_key"

Набор методов для получения метрик в формате Prometheus text-based exposition

Получение метрик проекта Облачной платформы Cloud.ru в формате Prometheus text-based exposition

Подсказка Актуальную спецификацию можно скачать и использовать в привычном инструменте.
Evolution