Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Выбор нескольких метрик

Материал из Документация АппОптима
Версия от 12:18, 29 декабря 2024; IKuznetsov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

API АппОптима / Эндпойнты среды / Развёртывание / Метрики v2 / Примеры и варианты использования / Выбор нескольких метрик

Конечная точка метрик GET предоставляет вам возможность запрашивать несколько метрик, а также частичные или даже полные дескрипторы метрик.

В этом примере показано, как получить дескрипторы нескольких метрик одного родителя:

  • Процессор простаивает ( builtin:host.cpu.idle)
  • Загрузка системы ( builtin:host.cpu.load)
  • Использование ЦП % ( builtin:host.cpu.usage)

Для каждого мы будем запрашивать полные дескрипторы:

  • Ключ метрики
  • Показать имя
  • Описание
  • Единицы
  • Поддерживаемые типы объектов
  • Поддерживаемые агрегаты
  • Агрегация по умолчанию
  • Поддерживаемые преобразования
  • Параметры

Настроить запрос

Мы должны установить следующие параметры запроса:

  • метрикаСелектор кbuiltin:host.cpu.(idle,usage,load)
  • поля до displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions. Обратите внимание, что metricIdздесь это опущено, потому что оно всегда присутствует в ответе.

Вы можете получить ответ в двух форматах:

  • JSON: установите для заголовка Acceptapplication/json запроса значение .
  • Таблица CSV: установите для заголовка Accepttext/csv; header=present запроса значение . Если вас не интересует строка заголовка, используйте text/csv; header=absent.

Чтобы аутентифицировать запрос, установите для заголовка AuthorizationApi-token {your-token} запроса значение . Токен должен иметь разрешение на чтение метрик (metrics.read)

Curl

Вот Curl-код запроса. Обязательно используйте URL-адрес вашей собственной среды и настоящий токен API.

Полезная нагрузка JSON

<curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics?fields=displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions&metricSelector=builtin:host.cpu.(idle,usage,load)' \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
-H 'Accept: application/json'

Полезная нагрузка таблицы CSV

<curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics?fields=displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions&metricSelector=builtin:host.cpu.(idle,usage,load)' \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
-H 'Accept: text/csv; header=present'

URL-адрес запроса

https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics?fields=displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions&metricSelector=builtin:host.cpu.(idle,usage,load)

Ответ

Оба примера содержат полную полезную нагрузку, ничего не усекается.

Полезная нагрузка JSON

<{
  "totalCount": 3,
  "nextPageKey": null,
  "metrics": [
    {
      "metricId": "builtin:host.cpu.idle",
      "displayName": "CPU idle",
      "description": "",
      "unit": "Percent",
      "entityType": [
        "HOST"
      ],
      "aggregationTypes": [
        "auto",
        "avg",
        "max",
        "min"
      ],
      "transformations": [
        "filter",
        "fold",
        "merge",
        "names",
        "parents"
      ],
      "defaultAggregation": {
        "type": "avg"
      },
      "dimensionDefinitions": [
        {
          "key": "dt.entity.host",
          "name": "Host",
          "index": 0,
          "type": "ENTITY"
        }
      ]
    },
    {
      "metricId": "builtin:host.cpu.load",
      "displayName": "System load",
      "description": "",
      "unit": "Ratio",
      "entityType": [
        "HOST"
      ],
      "aggregationTypes": [
        "auto",
        "avg",
        "max",
        "min"
      ],
      "transformations": [
        "filter",
        "fold",
        "merge",
        "names",
        "parents"
      ],
      "defaultAggregation": {
        "type": "avg"
      },
      "dimensionDefinitions": [
        {
          "key": "dt.entity.host",
          "name": "Host",
          "index": 0,
          "type": "ENTITY"
        }
      ]
    },
    {
      "metricId": "builtin:host.cpu.usage",
      "displayName": "CPU usage %",
      "description": "Percentage of CPU time currently utilized.",
      "unit": "Percent",
      "entityType": [
        "HOST"
      ],
      "aggregationTypes": [
        "auto",
        "avg",
        "max",
        "min"
      ],
      "transformations": [
        "filter",
        "fold",
        "merge",
        "names",
        "parents"
      ],
      "defaultAggregation": {
        "type": "avg"
      },
      "dimensionDefinitions": [
        {
          "key": "dt.entity.host",
          "name": "Host",
          "index": 0,
          "type": "ENTITY"
        }
      ]
    }
  ]
}

Полезная нагрузка таблицы CSV

<metricId,displayName,description,unit,entityType,aggregationTypes,transformations,defaultAggregation,dimensionDefinitions
builtin:host.cpu.idle,CPU idle,,Percent,[HOST],"[auto, avg, max, min]","[filter, fold, merge, names, parents]",avg,[Host:ENTITY]
builtin:host.cpu.load,System load,,Ratio,[HOST],"[auto, avg, max, min]","[filter, fold, merge, names, parents]",avg,[Host:ENTITY]
builtin:host.cpu.usage,CPU usage %,Percentage of CPU time currently utilized.,Percent,[HOST],"[auto, avg, max, m