Получение метрик в формате Prometheus text-based exposition
В этом разделе описано, как получить метрики из облака Cloud.ru в формате Prometheus text-based exposition по pull-модели (scraping).
Перед началом работы
Для работы с API личного кабинета Cloud.ru потребуется:
эндпоинт для запросов —
https://monitoring.api.cloud.ru
;product_instance_id
сервиса Мониторинг.Подсказка
Чтобы узнать
product_instance_id
, обратитесь в техническую поддержку.
Получение метрик с помощью curl-запроса
Чтобы получить метрики:
Выполните запрос:
curl -X GET --location "https://monitoring.api.cloud.ru/v1/{product_instance_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
— опциональный параметр. Конец временного интервала, за который необходимо получить данные о метриках.
В ответ на запрос возвратятся последние значения метрик, удовлетворяющих запросу, за указанный временной интервал. Каждому временному ряду соответствует отдельная строчка в получаемом массиве данных.
{
test.port.tx.total_packets{alias="ts2-VDC-1-edge02",host_id="91953d63-a648-481a-",host_name="ts2-VDC-1-edge02",interface_name="192.000.1.000/-ba9b508c...",interface_type="Tx segment downlink",product_type="enterprise_network",project_id="b379d6d6-2594-43c4-8d2d-",region="pd11Lab",service_instance_id="0195b302-400c-4f83-aafc-",tenant_name="yj2-BgUI-CCeT"} 1.025392100413 1705748901458
test.port.tx.total_packets{alias="ts2-VDC-1-edge02",host_id="91953d63-a648-481a-",host_name="ts2-VDC-1-edge02",interface_name="Uplink",interface_type="T1 uplink",product_type="enterprise_network",project_id="b379d6d6-2594-43c4-8d2d-",region="pd11Lab",service_instance_id="0195b302-400c-4f83-aafc-",tenant_name="yj2-BgUI-CCeT"} 2.159481950351 1703831217457
}
Если start
и end
не заполнены в запросе, возвратятся актуальные значения метрик за последние 30 мин с момента выполнения запроса в следующем формате:
metric_name ["{" label_name "=" `"` label_value `"` { "," label_name "=" `"` label_value `"` } [ "," ] "}"] value [ timestamp ]
Где:
metric_name
— название метрики;label_name
— название лейбла метрики;label_value
— значение лейбла;value
— значение метрики;timestamp
— временная метка, указанная в Unix timestamp в миллисекундах.
Получение метрик с помощью vmagent
Для автоматизации сбора метрик по pull-модели можно использовать prometheus или другой удобный инструмент.
Пример конфигурации 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: /v1/{product_instance_id}/scrape_metrics?match={product_type="enterprise_network"} #путь для получения метрик. необходимо поставить свой product_instance_id и фильтр метрик
scheme: https
oauth2: #настройка обращения в IAM для выдачи jwt токена для подписи запросов
client_id: "%{CLIENT_ID}"
client_secret: "%{CLIENT_SECRET}"
token_url: "https://auth.iam.sbercloud.ru/auth/system/openid/token"
endpoint_params:
"grant_type": "access_key"
Набор методов для получения метрик в формате Prometheus text-based exposition
- GET /v1/{product_instance_id}/scrape_metrics
Получение метрик проекта облачной платформы Cloud.ru в формате Prometheus text-based exposition
- Parameters
product_instance_id (string) – Идентификатор экземпляра продукта Monitoring as a Service, относящегося к проекту облачной платформы
- Query Parameters
match (array) – Правила выборки метрик - селектор временных рядов prometheus
start (integer) – Начало временного интервала, за который необходимо получить данные о метриках
end (integer) – Конец временного интервала, за который необходимо получить данные о метриках
- Status Codes
200 OK – Успешное выполнение запроса
400 Bad Request – Некорректный запрос
401 Unauthorized – Необходима авторизация
403 Forbidden – Доступ запрещен
404 Not Found – Ресурс не найден
500 Internal Server Error – Внутренняя ошибка сервера
Подсказка
Актуальную спецификацию можно скачать и использовать в привычном инструменте.для Dev & Test