Получение метрик

Материал из Документация Ключ-АСТРОМ

Список всех доступных показателей.

Вы можете ограничить вывод, используя нумерацию страниц:

  1. Укажите количество результатов на странице в параметре запроса pageSize .
  2. Затем используйте курсор из поля nextPageKey предыдущего ответа в параметре запроса nextPageKey для получения последующих страниц.

Запрос создает один из следующих типов полезной нагрузки, в зависимости от значения заголовка запроса Accept :

  • application/json
  • text/csv; header=present— таблица CSV со строкой заголовка
  • text/csv; header=absent— таблица CSV без строки заголовка

Если с запросом не предоставлен заголовок Acceptapplication/json , возвращается полезная нагрузка.

GET Managed https://{your-domain}/e/{your-environment-id}/api/v2/metrics
SaaS https://{your-environment-id}.live.ruscomtech.ru/api/v2/metrics
Окружающая среда АктивногоШлюза https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics

Аутентификация

Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение метрик ( metrics.read) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .

Параметры

Параметр Тип Описание В Необходимый
nextPageKey string Курсор для следующей страницы результатов. Вы можете найти его в поле nextPageKey предыдущего ответа.

Первая страница всегда возвращается, если вы не укажете параметр запроса nextPageKey .

Когда nextPageKey настроен на получение последующих страниц, вы должны опустить все остальные параметры запроса.

запрос по желанию
pageSize integer Количество метрических схем в полезной нагрузке одного ответа.

Максимально допустимый размер страницы – 500.

Если не установлено, используется 100.

Если используется значение выше 500, возвращается только 500 результатов на страницу.

запрос по желанию
metricSelector string Выбирает метрики для запроса по их ключам.

Можно указать несколько ключей метрик, разделенных запятыми (например, metrickey1,metrickey2). Чтобы выбрать несколько метрик, принадлежащих одному и тому же родителю, перечислите последнюю часть необходимых ключей метрик в круглых скобках, разделенных запятыми, не затрагивая общую часть. Например, чтобы перечислить метрику builtin:host.cpu.idleи , напишите: .builtin:host.cpu.userbuiltin:host.cpu.(idle,user)

*Вы можете выбрать полный набор связанных показателей, используя подстановочный знак звездочки ( ). Например, builtin:host.*выбирает все метрики на основе хоста и builtin:*выбирает все метрики, предоставленные Ключ-АСТРОМ.

Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( :). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Ключ-АСТРОМ.

Эта конечная точка поддерживает только преобразования , aggregation, mergeи parents.splitBy

Если ключ метрики содержит какие-либо символы, ключ необходимо заключить в кавычки ( "). Следующие символы внутри заключенного в кавычки метрического ключа должны быть экранированы тильдой ( ~):

  • Цитаты ( ")
  • Тильд ( ~)

Например, чтобы запросить метрику с ключом ext:selfmonitoring.jmx.Agents: Введите «APACHE» , вы должны указать этот селектор:

"ext:selfmonitoring.jmx.Agents: Type ~"APACHE~""

Чтобы найти метрики на основе условия поиска, а не metricId, используйте текстовый параметр запроса вместо этого.

запрос по желанию
text string Критерий поиска реестра метрик. Показывать только те метрики, которые содержат термин в своем ключе, отображаемом имени или описании. Используйте этот metricSelectorпараметр вместо этого, чтобы выбрать полную иерархию метрик вместо текстового поиска. запрос по желанию
fields string Определяет список свойств метрик, включенных в ответ.

metricIdвсегда включается в результат. Доступны следующие дополнительные свойства:

  • displayName: имя метрики в пользовательском интерфейсе. Включено по умолчанию.
  • description: краткое описание метрики. Включено по умолчанию.
  • unit: единица измерения. Включено по умолчанию.
  • tags: теги метрики.
  • dduBillable: индикатор того, расходуются ли при использовании метрики единицы данных Дейвиса .
  • created: Отметка времени (в миллисекундах UTC), когда метрика была создана.
  • lastWritten: Отметка времени (в миллисекундах UTC), когда точки данных метрики были записаны в последний раз.
  • aggregationTypes: список разрешенных агрегаций для метрики. Обратите внимание, что после применения преобразования оно может измениться .
  • defaultAggregation: Агрегирование метрики по умолчанию. Он используется, когда агрегация не указана или задано :autoпреобразование.
  • dimensionDefinitions: точное разделение метрик (например, группа процессов и идентификатор процесса для некоторой связанной с процессом метрики).
  • transformations: список преобразований , которые можно применить к метрике.
  • entityType: список типов объектов, поддерживаемых метрикой.
  • minimumValue: минимально допустимое значение метрики.
  • maximumValue: Максимально допустимое значение метрики.
  • rootCauseRelevant: Связана ли (истина или ложь) метрика с первопричиной проблемы. Метрика, относящаяся к первопричине, представляет собой надежный индикатор неисправного компонента.
  • impactRelevant: Относится ли метрика к влиянию проблемы (верно или нет). Метрика, имеющая отношение к влиянию, сильно зависит от других метрик и изменений, поскольку базовая метрика первопричины изменилась.
  • metricValueType: тип значения метрики. У вас есть следующие варианты:
    • score: Метрика оценки — это метрика, где высокие значения указывают на хорошую ситуацию, а низкие значения указывают на проблемы. Примером такой метрики является показатель успешности.
    • error: Метрика ошибок — это метрика, высокие значения которой указывают на проблему, а низкие значения указывают на хорошую ситуацию. Примером такой метрики является счетчик ошибок.
  • latency: задержка метрики в минутах. Задержка — это ожидаемая задержка в отчетах (например, вызванная ограничениями поставщиков облачных услуг или других сторонних источников данных) между наблюдением за точкой данных метрики и ее доступностью в Ключ-АСТРОМ. Допустимый диапазон значений от 1до 60минут.
  • metricSelector: Базовый селектор метрик, используемый func: metric.
  • scalar: указывает, разрешается ли выражение метрики в скаляр ( true) или в ряд ( false). Скалярный результат всегда содержит одну точку данных. Количество точек данных в результате серии зависит от используемого разрешения.
  • resolutionInfSupported: если true, разрешение=Inf может быть применено к запросу метрики.

Чтобы добавить свойства, перечислите их с начальным плюсом +. Чтобы исключить свойства по умолчанию, перечислите их с начальным минусом -.

Чтобы указать несколько свойств, соедините их запятой (например, fields=+aggregationTypes,-description).

Если указать только одно свойство, ответ будет содержать ключ метрики и указанное свойство. Чтобы вернуть только ключи метрик, укажите metricIdздесь.

запрос по желанию
writtenSince string Фильтрует результирующий набор метрик до тех, которые имеют точки данных в пределах указанного периода времени.

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

  • Отметка времени в миллисекундах UTC.
  • Человекочитаемый формат 2021-01-25T05:57:01.123+01:00. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо T. Секунды и доли секунды не являются обязательными.
  • Относительный таймфрейм, назад. Формат: now-NU/A, где Nколичество времени, Uединица времени и Aвыравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, now-1y/wэто один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: now-NU. Поддерживаемые единицы времени для относительного таймфрейма:
    • m: минуты
    • h: часы
    • d: дни
    • w: недели
    • M: месяцы
    • y: годы
запрос по желанию
metadataSelector string Область метаданных запроса. В ответ включаются только метрики с указанными свойствами.

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

  • unit("unit-1","unit-2")
  • tags("tag-1","tag-2")
  • dimensionKey("dimkey")Вы можете указать только одно значение. Фильтрация применяется только к измерениям, которые были записаны в течение последних 14 дней.

Чтобы задать несколько критериев, разделите их запятой ( ,). Например, tags("feature","cloud"),unit("Percent"),dimensionKey("location"). В ответ включаются только результаты, соответствующие всем критериям.

Например, чтобы вывести список метрик, у которых есть функция тегов feature AND cloud с единицей измерения Percent OR MegaByte AND измерение с измерением ключа location , используйте следующий metadataSelector : tags("feature"),unit("Percent","MegaByte"),tags("cloud"),dimensionKey("location").

запрос по желанию

Ответ

Коды ответов

Код Тип Описание
200 MetricDescriptorCollection Успех
400 Ошибка синтаксиса или проверки. metricSelector или поля содержат синтаксические или семантические ошибки.
404 Метрика не найдена.
406 Неприемлимо. Запрошенный тип носителя не поддерживается. Проверьте заголовок Accept вашего запроса.

Объекты тела ответа

Объект MetricDescriptorCollection

Список метрик вместе с их дескрипторами.

Элемент Тип Описание
nextPageKey string Курсор для следующей страницы результатов. Имеет значение nullна последней странице.

Используйте его в параметре запроса nextPageKey для получения последующих страниц результата.

totalCount integer Предполагаемое количество метрик в результате.
metrics MetricDescriptor[] Список метрик вместе с их дескрипторами
warnings string [] Список возможных предупреждений о запросе. Например, использование устаревших функций и т. д.

Объект MetricDescriptor

Дескриптор метрики.

Элемент Тип Описание
dimensionCardinalities MetricDimensionCardinality[] Количество элементов метрических измерений MINT.
minimumValue number Минимально допустимое значение метрики.

Выражения показателей не возвращают это поле.

maximumValue number Максимально допустимое значение метрики.

Выражения показателей не возвращают это поле.

latency integer Задержка показателя в минутах.

Задержка — это ожидаемая задержка в отчетах (например, вызванная ограничениями поставщиков облачных услуг или других сторонних источников данных) между наблюдением за точкой данных метрики и ее доступностью в Ключ-АСТРОМ.

Допустимый диапазон значений составляет от 1 до 60 минут.

Выражения показателей не возвращают это поле.

resolutionInfSupported boolean Если установлено значение «true», разрешение=Inf может быть применено к запросу метрики.
unitDisplayFormat string Необработанное значение хранится в битах или байтах. Пользовательский интерфейс может отображать его в следующих системах счисления:

Двоичный: 1 МБ = 1024 КиБ = 1 048 576 байт.

Десятичный: 1 МБ = 1000 КБ = 1 000 000 байт.

Если не задано, используется десятичная система.

Выражения показателей не возвращают это поле.

Элемент может содержать эти значения

  • binary
  • decimal
rootCauseRelevant boolean Метрика является ( true) или не является ( false) релевантной для основной причины.

Метрика, относящаяся к первопричине, представляет собой надежный индикатор неисправного компонента.

Выражения показателей не возвращают это поле.

dduBillable boolean Если trueиспользование метрики потребляет единицы данных Дэвиса .

Выражения показателей не возвращают это поле.

defaultAggregation MetricDefaultAggregation Агрегирование метрики по умолчанию.
lastWritten integer Отметка времени последней записи метрики.

Имеет значение nullдля метрических выражений или если данные никогда не записывались.

impactRelevant boolean Метрика является ( true) или не является ( false) релевантной для воздействия.

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

Выражения показателей не возвращают это поле.

dimensionDefinitions MetricDimensionDefinition[] Точное разделение метрик (например, группа процессов и идентификатор процесса для некоторой метрики, связанной с процессом).

Для загруженных показателей параметры, по которым не было данных за последние 15 дней, опускаются.

metricValueType MetricValueType Тип значения для метрики.
tags string [] Теги, примененные к метрике.

Выражения показателей не возвращают это поле.

entityType string [] Список допустимых основных типов сущностей для этой метрики. Может использоваться для typeпредиката в entitySelector.
metricId string Полный ключ метрики.

Если использовалось преобразование, оно отражается в ключе метрики.

metricSelector string Селектор метрик, который используется при запросе метрики func:.
scalar boolean Указывает, разрешается ли метрическое выражение в скаляр ( true) или в ряд ( false). Скалярный результат всегда содержит одну точку данных. Количество точек данных в результате серии зависит от используемого разрешения.
aggregationTypes string [] Список разрешенных агрегаций для этой метрики.

Элемент может содержать эти значения

  • auto
  • avg
  • count
  • max
  • median
  • min
  • percentile
  • sum
  • value
displayName string Имя метрики в пользовательском интерфейсе.
description string Краткое описание метрики.
transformations string [] Операторы преобразования, которые можно добавить к текущему списку преобразований.

Элемент может содержать эти значения

  • asGauge
  • default
  • delta
  • evaluateModel
  • filter
  • fold
  • last
  • lastReal
  • limit
  • merge
  • names
  • parents
  • partition
  • rate
  • rollup
  • setUnit
  • smooth
  • sort
  • splitBy
  • timeshift
  • toUnit
unit string Единица измерения.
warnings string[] Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
created integer Отметка времени создания метрики.

Встроенные метрики и выражения метрик имеют значение null.

Объект MetricDimensionCardinality

Количество элементов измерения метрики.

Элемент Тип Описание
relative number Относительная кардинальность измерения, выраженная в процентах
estimate integer Оценка количества элементов измерения.
key string Ключ измерения.

Он должен быть уникальным в пределах метрики.

Объект MetricDefaultAggregation

Агрегирование метрики по умолчанию.

Элемент Тип Описание
parameter number Доставляемый процентиль. Допустимые значения находятся между 0и 100.

Применимо только к percentileтипу агрегации.

type string Тип агрегации по умолчанию.

Элемент может содержать эти значения

  • auto
  • avg
  • count
  • max
  • median
  • min
  • percentile
  • sum
  • value

Объект MetricDimensionDefinition

Размерность метрики.

Элемент Тип Описание
displayName string Отображаемое имя измерения.
name string Имя измерения.
key string Ключ измерения.

Он должен быть уникальным в пределах метрики.

type string Тип измерения.

Элемент может содержать эти значения

  • ENTITY
  • NUMBER
  • OTHER
  • STRING
  • VOID
index integer Уникальный индекс измерения, начинающийся с 0.

Добавление преобразований, таких как :names или :parents, может изменить индексы измерений. nullиспользуется для измерений метрики с гибкими измерениями, на которые можно ссылаться с помощью их ключа измерения, но у которых нет внутреннего порядка, который можно было бы использовать для индекса.

Объект MetricValueType

Тип значения для метрики.

Элемент Тип Описание
type string Тип значения метрики

Элемент может содержать эти значения

  • error
  • score
  • unknown

JSON-модель тела ответа

{
  "totalCount": 3,
  "nextPageKey": "ABCDEFABCDEFABCDEF_",
  "metrics": [
    {
      "metricId": "builtin:host.cpu.user:splitBy(\"dt.entity.host\"):max:fold",
      "displayName": "CPU user",
      "description": "Percentage of user-space CPU time currently utilized, per host.",
      "unit": "Percent",
      "dduBillable": false,
      "created": 1597400123451,
      "lastWritten": 1597400717783,
      "entityType": [
        "HOST"
      ],
      "aggregationTypes": [
        "auto",
        "value"
      ],
      "transformations": [
        "filter",
        "fold",
        "limit",
        "merge",
        "names",
        "parents",
        "timeshift",
        "rate",
        "sort",
        "last",
        "splitBy"
      ],
      "defaultAggregation": {
        "type": "value"
      },
      "dimensionDefinitions": [
        {
          "key": "dt.entity.host",
          "name": "Host",
          "displayName": "Host",
          "index": 0,
          "type": "ENTITY"
        }
      ],
      "tags": [],
      "metricValueType": {
        "type": "unknown"
      }
    },
    {
      "metricId": "builtin:host.cpu.user:splitBy()",
      "displayName": "CPU user",
      "description": "Percentage of user-space CPU time currently utilized, per host.",
      "unit": "Percent",
      "dduBillable": false,
      "created": 1597400123451,
      "lastWritten": 1597400717783,
      "entityType": [
        "HOST"
      ],
      "aggregationTypes": [
        "auto",
        "value"
      ],
      "transformations": [
        "filter",
        "fold",
        "limit",
        "merge",
        "names",
        "parents",
        "timeshift",
        "rate",
        "sort",
        "last",
        "splitBy"
      ],
      "defaultAggregation": {
        "type": "value"
      },
      "dimensionDefinitions": [
        {
          "key": "dt.entity.host",
          "name": "Host",
          "displayName": "Host",
          "index": 0,
          "type": "ENTITY"
        }
      ],
      "tags": [],
      "metricValueType": {
        "type": "unknown"
      }
    }
  ]
}

Пример

В этом примере запрос запрашивает все встроенные метрики ( для metricSelector установлено значение builtin:*), доступные в среде mySampleEnv . В ответ включаются следующие поля:

  • идентификатор метрики
  • Ед. изм
  • типы агрегации

Для этого для параметра запроса полейunit,aggregationTypes установлено значение .

Маркер API передается в заголовке авторизации .

Ответ имеет application/jsonформат и усекается до четырех записей.

Curl

curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics?fields=unit,aggregationTypes&metricSelector=builtin:*' \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
-H 'Accept: application/json'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics?fields=unit,aggregationTypes&metricSelector=builtin:*

Тело ответа

{
  "totalCount": 1808,
  "nextPageKey": "___a7acX3q0AAAAGAQAJYnVpbHRpbjoqAQA",
  "metrics": [
    {
      "metricId": "builtin:host.cpu.idle",
      "unit": "Percent",
      "aggregationTypes": [
        "auto",
        "avg",
        "max",
        "min"
      ]
    },
    {
      "metricId": "builtin:host.cpu.load",
      "unit": "Ratio",
      "aggregationTypes": [
        "auto",
        "avg",
        "max",
        "min"
      ]
    },
    {
      "metricId": "builtin:service.errors.server.count",
      "unit": "Count",
      "aggregationTypes": [
        "auto",
        "value"
      ]
    },
    {
      "metricId": "builtin:service.keyRequest.count.client",
      "unit": "Count",
      "aggregationTypes": [
        "auto",
        "value"
      ]
    }
  ]
}

Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accepttext/csv; header=present на .

metricId,unit,aggregationTypes
builtin:host.cpu.idle,Percent,"[auto, avg, max, min]"
builtin:host.cpu.load,Ratio,"[auto, avg, max, min]"
builtin:service.errors.server.count,Count,"[auto, value]"
builtin:service.keyRequest.count.client,Count,"[auto, value]"

Код ответа

200