Получение метрик в формате Prometheus text-based exposition
В этом разделе описано, как получить метрики из облака Cloud.ru в формате Prometheus text-based exposition по pull-модели (scraping).
Перед началом работы
Для работы с API личного кабинета Cloud.ru потребуется:
эндпоинт для запросов — https://monitoring.api.cloud.ru;
project_id.
Пример запроса с project_id вашего проекта для работы с API Cloud.ru можно найти в личном кабинете в разделе Мониторинг → Публичные API, блок Получение метрик.
Получение метрик с помощью curl-запроса
Чтобы получить метрики:
Выполните запрос:
curl - X GET -- location "https://monitoring.api.cloud.ru/v2/ {project_id} /scrape_metrics?match=условие" \ - H "Authorization: Bearer $TOKEN"В теле запроса укажите следующие параметры:
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 1703848117458nsx . 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_valuehonor_labels: true #отдает приоритет исходным лейблам таймсерий в случае конфликта наименований с лейблами, назначаемыми статическиhonor_timestamps: true #сохраняет переданный таймстемпmetrics_path: /v2/{project_id}/scrape_metrics?match={product_type="enterprise_network"} #путь для получения метрик. Необходимо поставить свой project_id и фильтр метрик после matchscheme: httpsoauth2: #настройка обращения в 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
- Перед началом работы
- Получение метрик с помощью curl-запроса
- Получение метрик с помощью vmagent
- Набор методов для получения метрик в формате Prometheus text-based exposition