nav-img
Evolution

Получение метрик в формате 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
}

В результате одного запроса может вернуться максимум 10 000 таймсерий. Если их будет больше, вернется ошибка.

Получение метрик с помощью 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

Parameters
  • project_id (string) – Идентификатор проекта

Query Parameters
  • match (array) – Правила выборки метрик - селектор временных рядов Prometheus

  • start (integer) – Начало временного интервала, за который необходимо получить данные о метриках

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

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