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

Получение точки данных метрики: различия между версиями

Материал из Документация АппОптима
(Новая страница: «Получает точки данных указанных показателей. Вы можете получить либо одну агрегированн...»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
Получает точки данных указанных показателей.
Получает точки данных указанных показателей.


Вы можете получить либо одну агрегированную точку данных на кортеж (уникальные комбинации метрика-измерение-значение измерения), либо список точек данных на кортеж. См. описание параметра разрешения запроса для получения дополнительной информации.
Вы можете получить либо одну агрегированную точку данных на запись (уникальные комбинации метрика-измерение-значение измерения), либо список точек данных на запись. См. описание параметра разрешения запроса для получения дополнительной информации.


Применяются следующие ограничения:
Применяются следующие ограничения:


* Количество точек данных ограничено 20 000 000.
* Количество точек данных ограничено 20 000 000.
* Количество кортежей ограничено 100 000. При превышении <code>:sort</code>обрабатываются только первые 100 000 кортежей (на них преобразование не влияет), а остальные игнорируются.
* Количество кортежей ограничено 100 000. При превышении <code>:sort</code>обрабатываются только первые 100 000 записей (на них преобразование не влияет), а остальные игнорируются.
* Количество точек данных на кортеж ограничено 10 080.
* Количество точек данных на запись ограничено 10 080.
* Количество отслеживаемых сущностей ограничено 5000 на каждый entitySelector в запросе.
* Количество отслеживаемых сущностей ограничено 5000 на каждый entitySelector в запросе.


Важный
Важно:


Эти ограничения применяются к точкам данных, которые запрос считывает в базе данных. Количество точек данных в конечном результате может отличаться. Например, если используется <code>:fold</code>преобразование, запрос считывает несколько точек данных, но возвращает только одну агрегированную точку данных для каждого кортежа.
Эти ограничения применяются к точкам данных, которые запрос считывает в базе данных. Количество точек данных в конечном результате может отличаться. Например, если используется <code>:fold</code>преобразование, запрос считывает несколько точек данных, но возвращает только одну агрегированную точку данных для каждой записи.


Запрос создает один из следующих типов полезной нагрузки, в зависимости от значения заголовка запроса Accept :
Запрос создает один из следующих типов полезной нагрузки, в зависимости от значения заголовка запроса Accept :
Строка 22: Строка 22:
Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка.
Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка.
{| class="wikitable"
{| class="wikitable"
| rowspan="3" |ПОЛУЧИТЬ
| rowspan="3" |GET
|Удалось
|АппОптима
|<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/metrics/query</nowiki></code>
|<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/metrics/query</nowiki></code>
|-
|-
|SaaS
|SaaS
|<code><nowiki>https://{your-environment-id}.live.dynatrace.com/api/v2/metrics/query</nowiki></code>
|<code>https://{your-environment-id}.live.ruscomech.ru<nowiki/>/api/v2/metrics/query</code>
|-
|-
|Окружающая среда ActiveGate
|Окружающая среда АктивногоШлюза
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics/query</nowiki></code>
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/metrics/query</nowiki></code>
|}
|}


== Аутентификация ==
== Аутентификация ==
Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение метрик ( <code>metrics.read</code>) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение метрик ( <code>metrics.read</code>) . Чтобы узнать, как его получить и использовать, см. раздел [[Токены и аутентификация (API)|Токены и аутентификация]] .


== Параметры ==
== Параметры ==
Строка 41: Строка 41:
!Тип
!Тип
!Описание
!Описание
!В
!In
!Необходимый
!Необходимость
|-
|-
|метрическийселектор
|metricSelector
|нить
|string
|Выбирает метрики для запроса по их ключам. Вы можете выбрать до 10 метрик для одного запроса.
|Выбирает метрики для запроса по их ключам. Вы можете выбрать до 10 метрик для одного запроса.


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


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


* Цитаты ( <code>"</code>)
* Цитаты ( <code>"</code>)
* Тильд ( <code>~</code>)
* Тильды ( <code>~</code>)


Например, чтобы запросить метрику с ключом ext:selfmonitoring.jmx.Agents: Введите «APACHE» , вы должны указать этот селектор:
Например, чтобы запросить метрику с ключом ext:selfmonitoring.jmx.Agents: Введите «APACHE» , вы должны указать этот селектор:
Строка 59: Строка 59:
<code>"ext:selfmonitoring.jmx.Agents: Type ~"APACHE~""</code>
<code>"ext:selfmonitoring.jmx.Agents: Type ~"APACHE~""</code>


Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Dynatrace.
Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации АппОптима.
|запрос
|query
|по желанию
|по желанию
|-
|-
|разрешающая способность
|resolution
|нить
|string
|Желаемое разрешение точек данных.
|Желаемое разрешение точек данных.


Строка 74: Строка 74:
Допустимые единицы для временного интервала:
Допустимые единицы для временного интервала:


* <code>m</code>: минут
* <code>m</code>: минуты
* <code>h</code>: часы
* <code>h</code>: часы
* <code>d</code>: дней
* <code>d</code>: дней
Строка 87: Строка 87:
* Получите точки данных с разницей в 10 минут:<code>resolution=10m</code>
* Получите точки данных с разницей в 10 минут:<code>resolution=10m</code>
* Получите точки данных с разницей в 3 недели:<code>resolution=3w</code>
* Получите точки данных с разницей в 3 недели:<code>resolution=3w</code>
|запрос
|query
|по желанию
|по желанию
|-
|-
|из
|from
|нить
|string
|Начало запрошенного таймфрейма.
|Начало запрошенного таймфрейма.


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


Если не установлено, используется относительный таймфрейм в два часа ( <code>now-2h</code>).
Если не установлено, используется относительный таймфрейм в два часа ( <code>now-2h</code>).
|запрос
|query
|по желанию
|по желанию
|-
|-
|к
|to
|нить
|string
|Конец запрошенного периода времени.
|Конец запрошенного периода времени.


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


Если не установлено, используется текущая метка времени.
Если не установлено, используется текущая метка времени.
|запрос
|query
|по желанию
|по желанию
|-
|-
|селектор объектов
|entitySelector
|нить
|string
|Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами.
|Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами.


Строка 137: Строка 137:


* Тип объекта:<code>type("TYPE")</code>
* Тип объекта:<code>type("TYPE")</code>
* Идентификатор объекта Dynatrace: <code>entityId("id")</code>. Вы можете указать несколько идентификаторов, разделенных запятой ( <code>entityId("id-1","id-2")</code>). Все запрошенные сущности должны быть одного типа.
* Идентификатор объекта АппОптима: <code>entityId("id")</code>. Вы можете указать несколько идентификаторов, разделенных запятой ( <code>entityId("id-1","id-2")</code>). Все запрошенные сущности должны быть одного типа.


Вы можете добавить один или несколько следующих критериев. Значения чувствительны к регистру, и <code>EQUALS</code>оператор используется, если не указано иное.
Вы можете добавить один или несколько следующих критериев. Значения чувствительны к регистру, и <code>EQUALS</code>оператор используется, если не указано иное.
Строка 149: Строка 149:
** <code>entityName.in</code>: позволяет указать несколько значений. Оператор <code>EQUALS</code>обращается.
** <code>entityName.in</code>: позволяет указать несколько значений. Оператор <code>EQUALS</code>обращается.
** <code>caseSensitive(entityName.equals("value"))</code>: принимает любой критерий имени сущности в качестве аргументов и делает значение чувствительным к регистру.
** <code>caseSensitive(entityName.equals("value"))</code>: принимает любой критерий имени сущности в качестве аргументов и делает значение чувствительным к регистру.
* Состояние здоровья (ЗДОРОВЫЙ, НЕЗДОРОВЫЙ):<code>healthState("HEALTHY")</code>
* Состояние здоровья (HEALTHY,UNHEALTHY):<code>healthState("HEALTHY")</code>
* Отметка времени первого увиденного: <code>firstSeenTms.<operator>(now-3h)</code>. Используйте любой формат метки времени из параметров from / to . Доступны следующие операторы:
* Отметка времени первого увиденного: <code>firstSeenTms.<operator>(now-3h)</code>. Используйте любой формат метки времени из параметров from / to . Доступны следующие операторы:
** <code>lte</code>: раньше или в указанное время
** <code>lte</code>: раньше или в указанное время
Строка 159: Строка 159:
* Отрицание: <code>not(<criterion>)</code>. Инвертирует любой критерий, кроме type .
* Отрицание: <code>not(<criterion>)</code>. Инвертирует любой критерий, кроме type .


Дополнительные сведения см. в разделе Селектор объектов в документации Dynatrace.
Дополнительные сведения см. в разделе Селектор объектов в документации АппОптима.


Чтобы задать несколько критериев, разделите их запятой ( <code>,</code>). Например, <code>type("HOST"),healthState("HEALTHY")</code>. В ответ включаются только результаты, соответствующие всем критериям.
Чтобы задать несколько критериев, разделите их запятой ( <code>,</code>). Например, <code>type("HOST"),healthState("HEALTHY")</code>. В ответ включаются только результаты, соответствующие всем критериям.
Строка 168: Строка 168:


Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр.
Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр.
|запрос
|query
|по желанию
|по желанию
|-
|-
|mzSelector
|mzSelector
|нить
|string
|Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления.
|Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления.


Строка 179: Строка 179:
* <code>mzId(123,456)</code>
* <code>mzId(123,456)</code>
* <code>mzName("name-1","name-2")</code> Чтобы задать несколько критериев, разделите их запятой ( <code>,</code>). Например, <code>mzName("name-1","name-2"),mzId(1234)</code>. В ответ включаются только результаты, соответствующие всем критериям. Например, чтобы вывести список показателей с идентификатором 123 ИЛИ 234 И именем name-1 ИЛИ name-2 , используйте этот mzSelector : `mzId(123,234),mzName(" имя-1","имя-2").
* <code>mzName("name-1","name-2")</code> Чтобы задать несколько критериев, разделите их запятой ( <code>,</code>). Например, <code>mzName("name-1","name-2"),mzId(1234)</code>. В ответ включаются только результаты, соответствующие всем критериям. Например, чтобы вывести список показателей с идентификатором 123 ИЛИ 234 И именем name-1 ИЛИ name-2 , используйте этот mzSelector : `mzId(123,234),mzName(" имя-1","имя-2").
|запрос
|query
|по желанию
|по желанию
|}
|}
Строка 192: Строка 192:
|-
|-
|200
|200
|Метрические данные
|Данные метрики
|Успех
|Успех
|-
|-
Строка 210: Строка 210:
=== Объекты тела ответа ===
=== Объекты тела ответа ===


==== Объект _ <code>MetricData</code> ====
==== Объект <code>MetricData</code> ====
Список метрик и их точек данных.
Список метрик и их точек данных.
{| class="wikitable"
{| class="wikitable"
Строка 217: Строка 217:
!Описание
!Описание
|-
|-
|разрешающая способность
|resolution
|нить
|string
|Разрешение временного интервала в результате.
|Разрешение временного интервала в результате.
|-
|-
|ключ следующей страницы
|nextPageKey
|нить
|string
|Устарело. Это поле возвращено из соображений совместимости. Он всегда имеет значение <code>null</code>.
|Устарело. Это поле возвращено из соображений совместимости. Он всегда имеет значение <code>null</code>.
|-
|-
|общее количество
|totalCount
|целое число
|integer
|Общее количество первичных сущностей в результате.
|Общее количество первичных сущностей в результате.


Имеет <code>0</code>значение, если ни одна из запрошенных метрик не подходит для разбиения на страницы.
Имеет <code>0</code>значение, если ни одна из запрошенных метрик не подходит для разбиения на страницы.
|-
|-
|результат
|result
|Коллекция метрических серий []
|MetricSeriesCollection[]
|Список метрик и их точек данных.
|Список метрик и их точек данных.
|-
|-
|предупреждения
|warnings
|строка []
|string []
|Список предупреждений
|Список предупреждений
|}
|}


==== Объект _ <code>MetricSeriesCollection</code> ====
==== Объект <code>MetricSeriesCollection</code> ====
Точки данных метрики.
Точки данных метрики.
{| class="wikitable"
{| class="wikitable"
Строка 248: Строка 248:
|-
|-
|dataPointCountRatio
|dataPointCountRatio
|количество
|number
|Отношение запрошенных точек данных к максимальному количеству точек данных на метрику, разрешенных в одном запросе.
|Отношение запрошенных точек данных к максимальному количеству точек данных на метрику, разрешенных в одном запросе.
|-
|-
|примененные необязательные фильтры
|appliedOptionalFilters
|Примененный фильтр []
|AppliedFilter[]
|Список отфильтрованных ключей метрик вместе с фильтрами, примененными к этим ключам, из <code>optionalFilter</code>параметра.
|Список отфильтрованных ключей метрик вместе с фильтрами, примененными к этим ключам, из <code>optionalFilter</code>параметра.
|-
|-
|измерениеCountRatio
|dimensionCountRatio
|количество
|number
|Отношение запрошенных кортежей измерений к максимальному количеству кортежей измерений, разрешенных в одном запросе.
|Отношение запрошенных записей измерений к максимальному количеству записей измерений, разрешенных в одном запросе.
|-
|-
|идентификатор метрики
|metricId
|нить
|string
|Ключ метрики.
|Ключ метрики.


Если применяется какое-либо преобразование, оно включается здесь.
Если применяется какое-либо преобразование, оно включается здесь.
|-
|-
|данные
|data
|Метрическая серия []
|MetricSeries[]
|Точки данных метрики.
|Точки данных метрики.
|-
|-
|предупреждения
|warnings
|строка []
|string []
|Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
|Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.
|}
|}


==== Объект _ <code>AppliedFilter</code> ====
==== Объект <code>AppliedFilter</code> ====
Вступившие в силу дополнительные фильтры.
Вступившие в силу дополнительные фильтры.
{| class="wikitable"
{| class="wikitable"
Строка 281: Строка 281:
!Описание
!Описание
|-
|-
|применительно к
|appliedTo
|строка []
|string []
|Ключи всех метрик, к которым применен этот фильтр.
|Ключи всех метрик, к которым применен этот фильтр.


Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ.
Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ.
|-
|-
|фильтр
|filter
|Фильтр
|Filter
|Фильтр измерений или рядов для метрики.
|Фильтр измерений или рядов для метрики.
|}
|}


==== Объект _ <code>Filter</code> ====
==== Объект <code>Filter</code> ====
Фильтр измерений или рядов для метрики.
Фильтр измерений или рядов для метрики.
{| class="wikitable"
{| class="wikitable"
Строка 299: Строка 299:
!Описание
!Описание
|-
|-
|ссылкаВызов
|referenceInvocation
|Вызов
|Invocation
|Вызов функции, например, <code>entitySelector</code>function.
|Вызов функции, например, <code>entitySelector</code>function.
|-
|-
|targetDimension
|targetDimension
|нить
|string
|Если тип применяется к измерению, то содержит целевое измерение.
|Если тип применяется к измерению, то содержит целевое измерение.
|-
|-
|targetDimensions
|referenceString
|строка []
|string []
|Если тип применяется к n измерениям, то содержит целевые измерения. В настоящее время используется только для <code>remainder</code>фильтра.
|Если тип применяется к n измерениям, то содержит целевые измерения. В настоящее время используется только для <code>remainder</code>фильтра.
|-
|-
|ссылкаСтрока
|referenceString
|нить
|string
|Для фильтров, которые сопоставляют измерение со значением, например <code>eq</code>или <code>ne</code>, содержит значение, с которым сравнивается измерение.
|Для фильтров, которые сопоставляют измерение со значением, например <code>eq</code>или <code>ne</code>, содержит значение, с которым сравнивается измерение.
|-
|-
|свернуть
|rollup
|Свернуть
|Rollup
|Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
|Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
|-
|-
|исходная величина
|referenceValue
|количество
|number
|Для операндов <code>series</code>фильтров, совпадающих с числом, содержит число для сравнения.
|Для операндов <code>series</code>фильтров, совпадающих с числом, содержит число для сравнения.
|-
|-
|операнды
|operands
|Фильтр []
|Filter []
|Если тип — или <code>not</code>, то содержит содержащиеся фильтры.<code>andor</code>
|Если тип <code>not</code>, <code>and</code> or <code>or</code>, то включает содержащиеся фильтры.<code>andor</code>
|-
|-
|тип
|type
|нить
|string
|Тип этого фильтра определяет, какие другие поля присутствуют. Может быть любым из:
|Тип этого фильтра определяет, какие другие поля присутствуют. Может быть любым из:


Строка 350: Строка 350:


Элемент может содержать эти значения
Элемент может содержать эти значения
* <code>and</code>
* <code>contains</code>
* <code>eq</code>
* <code>existsKey</code>
* <code>ge</code>
* <code>gt</code>
* <code>in</code>
* <code>le</code>
* <code>lt</code>
* <code>ne</code>
* <code>not</code>
* <code>or</code>
* <code>otherwise</code>
* <code>prefix</code>
* <code>remainder</code>
* <code>series</code>
* <code>suffix</code>
|}
|}


==== Объект _ <code>Invocation</code> ====
==== Объект <code>Invocation</code> ====
Вызов функции, например, <code>entitySelector</code>function.
Вызов функции, например, <code>entitySelector</code>function.
{| class="wikitable"
{| class="wikitable"
Строка 359: Строка 377:
!Описание
!Описание
|-
|-
|аргументы
|args
|строка []
|string []
|Аргументы для передачи функции, например, исходный код селектора сущностей.
|Аргументы для передачи функции, например, исходный код селектора сущностей.
|-
|-
|функция
|function
|нить
|string
|Вызываемая функция, например <code>entitySelector</code>.
|Вызываемая функция, например <code>entitySelector</code>.
|}
|}


==== Объект _ <code>Rollup</code> ====
==== Объект <code>Rollup</code> ====
Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
{| class="wikitable"
{| class="wikitable"
Строка 375: Строка 393:
!Описание
!Описание
|-
|-
|параметр
|parameter
|количество
|number
| -
| -
|-
|-
|тип
|type
|нить
|string
| -
| -
Элемент может содержать эти значения
Элемент может содержать эти значения
Строка 393: Строка 411:
|}
|}


==== Объект _ <code>MetricSeries</code> ====
==== Объект <code>MetricSeries</code> ====
Точки данных для каждого параметра метрики.
Точки данных для каждого параметра метрики.


Строка 402: Строка 420:
!Описание
!Описание
|-
|-
|измерениеКарта
|dimensionMap
|объект
|object
| -
| -
|-
|-
|временные метки
|timestamps
|целое []
|integer []
|Список временных меток точек данных.
|Список временных меток точек данных.


Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу.
Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу.
|-
|-
|Габаритные размеры
|dimensions
|строка []
|string[]
|Упорядоченный список измерений, к которым принадлежит список точек данных.
|Упорядоченный список измерений, к которым принадлежит список точек данных.


Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь.
Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь.
|-
|-
|ценности
|values
|номер []
|number []
|Список значений точек данных.
|Список значений точек данных.


Строка 426: Строка 444:


=== JSON-модель тела ответа ===
=== JSON-модель тела ответа ===
  <code>{
  <{
   "totalCount": 3,
   "totalCount": 3,
   "nextPageKey": "null",
   "nextPageKey": "null",
Строка 501: Строка 519:
     }
     }
   ]
   ]
  }</code>
  }


== Примечание о таймфрейме ==
== Примечание о таймфрейме ==
Dynatrace хранит данные во временных интервалах. Объект MetricValue показывает отметку времени ''окончания'' слота. Если время, указанное в параметрах from или to вашего запроса, попадает в временной интервал данных, этот временной интервал включается в ответ.
АппОптима хранит данные во временных интервалах. Объект MetricValue показывает отметку времени ''окончания'' слота. Если время, указанное в параметрах from или to вашего запроса, попадает в временной интервал данных, этот временной интервал включается в ответ.


Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса.
Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса.


Dynatrace не предсказывает будущие данные. Временная метка последней точки данных может лежать в будущем из-за принципа интервалов данных, описанного выше. В этом случае этот слот данных имеет неполные данные.
АппОптима не предсказывает будущие данные. Временная метка последней точки данных может лежать в будущем из-за принципа интервалов данных, описанного выше. В этом случае этот слот данных имеет неполные данные.


== Примеры ==
== Примеры ==
Строка 525: Строка 543:
Ответ в <code>application/json</code>формате.
Ответ в <code>application/json</code>формате.


==== Завиток ====
==== Curl ====
С непреобразованными метриками и фильтром entitySelector :
С непреобразованными метриками и фильтром entitySelector :
  <code>curl -L -X GET '<nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m'</nowiki> \
  <curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru<nowiki/>/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m' \
  -H 'Authorization: Api-Token abcdefjhij1234567890' \
  -H 'Authorization: Api-Token abcdefjhij1234567890' \
  -H 'Accept: application/json'</code>
  -H 'Accept: application/json'
С преобразованием, применяемым непосредственно к метрикам:
С преобразованием, применяемым непосредственно к метрикам:
  <code>curl -L -X GET '<nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m'</nowiki> \
  <curl -L -X GET '<nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m'</nowiki> \
  -H 'Authorization: Api-Token abcdefjhij1234567890' \
  -H 'Authorization: Api-Token abcdefjhij1234567890' \
  -H 'Accept: application/json'</code>
  -H 'Accept: application/json'


==== URL-адрес запроса ====
==== URL-адрес запроса ====
С непреобразованными метриками и фильтром entitySelector :
С непреобразованными метриками и фильтром entitySelector :
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m</nowiki></code>
С преобразованием, применяемым непосредственно к метрикам:
С преобразованием, применяемым непосредственно к метрикам:
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m</nowiki></code>


==== Тело ответа ====
==== Тело ответа ====
Результат усекается до трех точек данных на измерение.
Результат усекается до трех точек данных на измерение.
  <code>{
  <{
   "totalCount": 2,
   "totalCount": 2,
   "nextPageKey": null,
   "nextPageKey": null,
Строка 634: Строка 652:
     }
     }
   ]
   ]
  }</code>
  }
Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accept<code>text/csv; header=present</code> на .
Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accept<code>text/csv; header=present</code> на .
  <code>metricId,dt.entity.host,time,value
  <metricId,dt.entity.host,time,value
  builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:35:00,19.0
  builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:35:00,19.0
  builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:36:00,19.0
  builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:36:00,19.0
Строка 642: Строка 660:
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:35:00,19.0
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:35:00,19.0
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:36:00,21.0
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:36:00,21.0
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:37:00,22.0</code>
  builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:37:00,22.0


==== Код ответа ====
==== Код ответа ====
200
200

Текущая версия от 15:46, 26 декабря 2024

Получает точки данных указанных показателей.

Вы можете получить либо одну агрегированную точку данных на запись (уникальные комбинации метрика-измерение-значение измерения), либо список точек данных на запись. См. описание параметра разрешения запроса для получения дополнительной информации.

Применяются следующие ограничения:

  • Количество точек данных ограничено 20 000 000.
  • Количество кортежей ограничено 100 000. При превышении :sortобрабатываются только первые 100 000 записей (на них преобразование не влияет), а остальные игнорируются.
  • Количество точек данных на запись ограничено 10 080.
  • Количество отслеживаемых сущностей ограничено 5000 на каждый entitySelector в запросе.

Важно:

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

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

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

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

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

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

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

Параметры

Параметр Тип Описание In Необходимость
metricSelector string Выбирает метрики для запроса по их ключам. Вы можете выбрать до 10 метрик для одного запроса.

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

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

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

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

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

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

query по желанию
resolution string Желаемое разрешение точек данных.

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

  • Желаемое количество точек данных. Это опция по умолчанию. Это контрольное количество точек, которое не обязательно равно количеству возвращаемых точек данных.
  • Желаемый промежуток времени между точками данных. Это эталонный временной интервал, который не обязательно равен возвращаемому временному интервалу. Чтобы использовать эту опцию, укажите единицу измерения временного интервала.

Допустимые единицы для временного интервала:

  • m: минуты
  • h: часы
  • d: дней
  • w: недели
  • M: месяцы
  • y: годы

Если не задано, по умолчанию используется 120 точек данных .

Например:

  • Получите точки данных с разницей в 10 минут:resolution=10m
  • Получите точки данных с разницей в 3 недели:resolution=3w
query по желанию
from 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: годы

Если не установлено, используется относительный таймфрейм в два часа ( now-2h).

query по желанию
to 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: годы

Если не установлено, используется текущая метка времени.

query по желанию
entitySelector string Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами.

Вы должны установить один из этих критериев:

  • Тип объекта:type("TYPE")
  • Идентификатор объекта АппОптима: entityId("id"). Вы можете указать несколько идентификаторов, разделенных запятой ( entityId("id-1","id-2")). Все запрошенные сущности должны быть одного типа.

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

  • Тег: tag("value"). Теги в форматах [context]key:value, key:valueи valueобнаруживаются и анализируются автоматически. Любые двоеточия ( :), которые являются частью ключа или значения, должны быть экранированы обратной косой чертой ( \), в противном случае она будет интерпретироваться как разделитель между ключом и значением. Все значения тегов чувствительны к регистру.
  • Идентификатор зоны управления:mzId(123)
  • Название зоны управления:mzName("value")
  • Имя сущности:
    • entityName.equals: выполняет EQUALSзапрос без учета регистра.
    • entityName.startsWith: изменяет оператор на BEGINS WITH.
    • entityName.in: позволяет указать несколько значений. Оператор EQUALSобращается.
    • caseSensitive(entityName.equals("value")): принимает любой критерий имени сущности в качестве аргументов и делает значение чувствительным к регистру.
  • Состояние здоровья (HEALTHY,UNHEALTHY):healthState("HEALTHY")
  • Отметка времени первого увиденного: firstSeenTms.<operator>(now-3h). Используйте любой формат метки времени из параметров from / to . Доступны следующие операторы:
    • lte: раньше или в указанное время
    • lt: раньше указанного времени
    • gte: позже или в указанное время
    • gt: позже указанного времени
  • Атрибут объекта: <attribute>("value1","value2")и <attribute>.exists(). Чтобы получить список доступных атрибутов, выполните запрос типа сущности GET и проверьте поле свойств ответа.
  • Отношения: fromRelationships.<relationshipName>()и toRelationships.<relationshipName>(). Критерий принимает селектор объектов в качестве атрибута. Чтобы получить список доступных отношений, выполните запрос типа сущности GET и проверьте поля fromRelationships и toRelationships .
  • Отрицание: not(<criterion>). Инвертирует любой критерий, кроме type .

Дополнительные сведения см. в разделе Селектор объектов в документации АппОптима.

Чтобы задать несколько критериев, разделите их запятой ( ,). Например, type("HOST"),healthState("HEALTHY"). В ответ включаются только результаты, соответствующие всем критериям.

Поддерживаемая длина строки составляет 2000 символов.

Используйте GET /metrics/{metricId}вызов, чтобы получить список возможных типов сущностей для вашей метрики.

Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр.

query по желанию
mzSelector string Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления.

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

  • mzId(123,456)
  • mzName("name-1","name-2") Чтобы задать несколько критериев, разделите их запятой ( ,). Например, mzName("name-1","name-2"),mzId(1234). В ответ включаются только результаты, соответствующие всем критериям. Например, чтобы вывести список показателей с идентификатором 123 ИЛИ 234 И именем name-1 ИЛИ name-2 , используйте этот mzSelector : `mzId(123,234),mzName(" имя-1","имя-2").
query по желанию

Ответ

Коды ответов

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

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

Объект MetricData

Список метрик и их точек данных.

Элемент Тип Описание
resolution string Разрешение временного интервала в результате.
nextPageKey string Устарело. Это поле возвращено из соображений совместимости. Он всегда имеет значение null.
totalCount integer Общее количество первичных сущностей в результате.

Имеет 0значение, если ни одна из запрошенных метрик не подходит для разбиения на страницы.

result MetricSeriesCollection[] Список метрик и их точек данных.
warnings string [] Список предупреждений

Объект MetricSeriesCollection

Точки данных метрики.

Элемент Тип Описание
dataPointCountRatio number Отношение запрошенных точек данных к максимальному количеству точек данных на метрику, разрешенных в одном запросе.
appliedOptionalFilters AppliedFilter[] Список отфильтрованных ключей метрик вместе с фильтрами, примененными к этим ключам, из optionalFilterпараметра.
dimensionCountRatio number Отношение запрошенных записей измерений к максимальному количеству записей измерений, разрешенных в одном запросе.
metricId string Ключ метрики.

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

data MetricSeries[] Точки данных метрики.
warnings string [] Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д.

Объект AppliedFilter

Вступившие в силу дополнительные фильтры.

Элемент Тип Описание
appliedTo string [] Ключи всех метрик, к которым применен этот фильтр.

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

filter Filter Фильтр измерений или рядов для метрики.

Объект Filter

Фильтр измерений или рядов для метрики.

Элемент Тип Описание
referenceInvocation Invocation Вызов функции, например, entitySelectorfunction.
targetDimension string Если тип применяется к измерению, то содержит целевое измерение.
referenceString string [] Если тип применяется к n измерениям, то содержит целевые измерения. В настоящее время используется только для remainderфильтра.
referenceString string Для фильтров, которые сопоставляют измерение со значением, например eqили ne, содержит значение, с которым сравнивается измерение.
rollup Rollup Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
referenceValue number Для операндов seriesфильтров, совпадающих с числом, содержит число для сравнения.
operands Filter [] Если тип not, and or or, то включает содержащиеся фильтры.andor
type string Тип этого фильтра определяет, какие другие поля присутствуют. Может быть любым из:
  • eq,
  • ne,
  • prefix,
  • in,
  • remainder,
  • suffix,
  • contains,
  • existsKey,
  • series,
  • or,
  • and,
  • not,
  • ge,
  • gt,
  • le,
  • lt,
  • otherwise.

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

  • and
  • contains
  • eq
  • existsKey
  • ge
  • gt
  • in
  • le
  • lt
  • ne
  • not
  • or
  • otherwise
  • prefix
  • remainder
  • series
  • suffix

Объект Invocation

Вызов функции, например, entitySelectorfunction.

Элемент Тип Описание
args string [] Аргументы для передачи функции, например, исходный код селектора сущностей.
function string Вызываемая функция, например entitySelector.

Объект Rollup

Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.

Элемент Тип Описание
parameter number -
type string -

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

  • AUTO
  • AVG
  • MAX
  • MEDIAN
  • MIN
  • PERCENTILE
  • SUM

Объект MetricSeries

Точки данных для каждого параметра метрики.

Данные представлены двумя массивами одинаковой длины: timestamps и values . Записи одного и того же индекса из обоих массивов образуют точку данных с отметкой времени.

Элемент Тип Описание
dimensionMap object -
timestamps integer [] Список временных меток точек данных.

Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу.

dimensions string[] Упорядоченный список измерений, к которым принадлежит список точек данных.

Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано nullздесь.

values number [] Список значений точек данных.

Временная метка точки данных для каждого значения из этого массива находится в массиве временных меток по тому же индексу.

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

<{
  "totalCount": 3,
  "nextPageKey": "null",
  "resolution": "1h",
  "warnings": [
    "The contains filter transformation is deprecated and will be removed in a future release."
  ],
  "result": [
    {
      "metricId": "builtin:host.disk.avail",
      "dataPointCountRatio": "0.1211",
      "dimensionCountRatio": "0.0322",
      "data": [
        {
          "dimensionMap": {
            "dt.entity.disk": "DISK-F1266E1D0AAC2C3F",
            "dt.entity.host": "HOST-F1266E1D0AAC2C3C"
          },
          "dimensions": [
            "HOST-F1266E1D0AAC2C3C",
            "DISK-F1266E1D0AAC2C3F"
          ],
          "timestamps": [
            3151435100000,
            3151438700000,
            3151442300000
          ],
          "values": [
            11.1,
            22.2,
            33.3
          ]
        },
        {
          "dimensions": [
            "HOST-F1266E1D0AAC2C3C",
            "DISK-F1266E1D0AAC2C3D"
          ],
          "timestamps": [
            3151435100000,
            3151438700000,
            3151442300000
          ],
          "values": [
            111.1,
            222.2,
            333.3
          ]
        }
      ]
    },
    {
      "metricId": "builtin:host.cpu.idle",
      "data": [
        {
          "dimensionMap": {
            "dt.entity.host": "HOST-F1266E1D0AAC2C3C"
          },
          "dimensions": [
            "HOST-F1266E1D0AAC2C3C"
          ],
          "timestamps": [
            3151435100000,
            3151438700000,
            3151442300000
          ],
          "values": [
            1.1,
            2.2,
            3.3
          ]
        }
      ]
    }
  ]
}

Примечание о таймфрейме

АппОптима хранит данные во временных интервалах. Объект MetricValue показывает отметку времени окончания слота. Если время, указанное в параметрах from или to вашего запроса, попадает в временной интервал данных, этот временной интервал включается в ответ.

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

АппОптима не предсказывает будущие данные. Временная метка последней точки данных может лежать в будущем из-за принципа интервалов данных, описанного выше. В этом случае этот слот данных имеет неполные данные.

Примеры

В этих примерах запросы запрашивают точки данных встроенных: host.cpu.usage и встроенных: host.cpu.idle метрик.

Таймфрейм установлен на 5 минут . Для этого параметру запроса fromnow-5m присваивается значение .

В ответ включаются только данные от этих двух хостов ( HOST-0990886B7D39FE29 и HOST-0956C3557E9109C1 ). Для этого параметру запроса entitySelector присваиваетсяtype("dt.entity.host"),entityId("HOST-0990886B7D39FE29") значение .

Поскольку узел является измерением запрошенных метрик, вы можете добиться той же фильтрации, применив :filterпреобразование к самим метрикам, установив для параметра запроса metricSelectorbuiltin:host.cpu.(usage,idle):filter(or(eq("dt.entity.host","HOST-0990886B7D39FE29"),eq("dt.entity.host","HOST-0956C3557E9109C1"))) значение и опустив entitySelector как избыточный.

Разница между запросами заключается в представлении данных: первый показывает список точек данных, а второй показывает только одну агрегированную точку данных для каждого ряда ( :foldпреобразование применяется в конце).

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

Ответ в application/jsonформате.

Curl

С непреобразованными метриками и фильтром entitySelector :

<curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m' \
-H 'Authorization: Api-Token abcdefjhij1234567890' \
-H 'Accept: application/json'

С преобразованием, применяемым непосредственно к метрикам:

<curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m' \
-H 'Authorization: Api-Token abcdefjhij1234567890' \
-H 'Accept: application/json'

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

С непреобразованными метриками и фильтром entitySelector :

https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle)&entitySelector=type(%22dt.entity.host%22),entityId(%22HOST-0990886B7D39FE29%22,%22HOST-0956C3557E9109C1%22)&from=now-5m

С преобразованием, применяемым непосредственно к метрикам:

https://mySampleEnv.live.ruscomtech.ru/api/v2/metrics/query?metricSelector=builtin:host.cpu.(usage,idle):filter(or(eq(%22dt.entity.host%22,%22HOST-0990886B7D39FE29%22),eq(%22dt.entity.host%22,%22HOST-0956C3557E9109C1%22)))&from=now-5m

Тело ответа

Результат усекается до трех точек данных на измерение.

<{
  "totalCount": 2,
  "nextPageKey": null,
  "result": [
     {
      "metricId": "builtin:host.cpu.idle",
      "dataPointCountRatio": 1.8E-5,
      "dimensionCountRatio": 3.0E-5,
      "data": [
        {
          "dimensions": [
            "HOST-0990886B7D39FE29"
          ],
          "dimensionMap": {
            "dt.entity.host": "HOST-0990886B7D39FE29"
          },
          "timestamps": [
            1589456100000,
            1589456160000,
            1589456220000
          ],
          "values": [
            81.0,
            81.0,
            79.0
          ]
        },
        {
          "dimensions": [
            "HOST-0956C3557E9109C1"
          ],
          "dimensionMap": {
            "dt.entity.host": "HOST-0956C3557E9109C1"
          },
          "timestamps": [
            1589456100000,
            1589456160000,
            1589456220000
          ],
          "values": [
            81.0,
            79.0,
            78.0
          ]
        }
      ]
    },
    {
      "metricId": "builtin:host.cpu.usage",
      "dataPointCountRatio": 1.8E-5,
      "dimensionCountRatio": 3.0E-5,
      "data": [
        {
          "dimensions": [
            "HOST-0990886B7D39FE29"
          ],
          "dimensionMap": {
            "dt.entity.host": "HOST-0990886B7D39FE29"
          },
          "timestamps": [
            1589456100000,
            1589456160000,
            1589456220000
          ],
          "values": [
            19.0,
            19.0,
            21.0
          ]
        },
        {
          "dimensions": [
            "HOST-0956C3557E9109C1"
          ],
          "dimensionMap": {
            "dt.entity.host": "HOST-0956C3557E9109C1"
          },
          "timestamps": [
            1589456100000,
            1589456160000,
            1589456220000
          ],
          "values": [
            19.0,
            21.0,
            22.0
          ]
        }
      ]
    }
  ]
}

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

<metricId,dt.entity.host,time,value
builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:35:00,19.0
builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:36:00,19.0
builtin:host.cpu.usage,HOST-0956C3557E9109C1,2020-05-14 11:37:00,21.0
builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:35:00,19.0
builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:36:00,21.0
builtin:host.cpu.usage,HOST-0990886B7D39FE29,2020-05-14 11:37:00,22.0

Код ответа

200