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

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

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

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

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

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

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

    curl -X GET --location "https://monitoring.api.cloud.ru/v1/{product_instance_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 — опциональный параметр. Конец временного интервала, за который необходимо получить данные о метриках.

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

{
  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

Подсказка

Актуальную спецификацию можно скачать и использовать в привычном инструменте.
Запустили Evolution free tier
для Dev & Test
Получить