- tocdepth
2
Получение метрик в формате 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
вашего проекта для работы с API Cloud.ru можно найти в личном кабинете в разделе , блок Получение метрик.
Получение метрик с помощью 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
— опциональный параметр. Конец временного интервала, за который необходимо получить данные о метриках.
В ответ на запрос возвратятся последние значения метрик, удовлетворяющих запросу, за указанный временной интервал.
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 или другой удобный инструмент.
Пример конфигурации 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 и фильтр метрик после match
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