tocdepth

2

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

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

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

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

Подсказка

Пример запроса с product_instance_id вашего проекта для работы с API Cloud.ru можно найти в личном кабинете в разделе Мониторинг → Публичные API, блок Получение метрик.

Получение метрик с помощью 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 — опциональный параметр. Конец временного интервала, за который необходимо получить данные о метриках.

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

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

Подсказка

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