ENetrebin (обсуждение | вклад) (Новая страница: «Получает точки данных указанных показателей. Вы можете получить либо одну агрегированн...») |
Нет описания правки |
||
(не показаны 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. | ||
* Количество отслеживаемых сущностей ограничено 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 | |<code>https://{your-environment-id}.live.ruscomech.ru<nowiki/>/api/v2/metrics/query</code> | ||
|- | |- | ||
|Окружающая среда | |Окружающая среда АктивногоШлюза | ||
|<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>) | ||
Например, чтобы запросить метрику с ключом 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>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации | Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <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> | ||
* Идентификатор объекта | * Идентификатор объекта АппОптима: <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>: принимает любой критерий имени сущности в качестве аргументов и делает значение чувствительным к регистру. | ||
* Состояние здоровья ( | * Состояние здоровья (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 . | ||
Дополнительные сведения см. в разделе Селектор объектов в документации | Дополнительные сведения см. в разделе Селектор объектов в документации АппОптима. | ||
Чтобы задать несколько критериев, разделите их запятой ( <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> ==== | ||
Список метрик и их точек данных. | Список метрик и их точек данных. | ||
{| 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> ==== | ||
Точки данных метрики. | Точки данных метрики. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 248: | Строка 248: | ||
|- | |- | ||
|dataPointCountRatio | |dataPointCountRatio | ||
| | |number | ||
|Отношение запрошенных точек данных к максимальному количеству точек данных на метрику, разрешенных в одном запросе. | |Отношение запрошенных точек данных к максимальному количеству точек данных на метрику, разрешенных в одном запросе. | ||
|- | |- | ||
| | |appliedOptionalFilters | ||
| | |AppliedFilter[] | ||
|Список отфильтрованных ключей метрик вместе с фильтрами, примененными к этим ключам, из <code>optionalFilter</code>параметра. | |Список отфильтрованных ключей метрик вместе с фильтрами, примененными к этим ключам, из <code>optionalFilter</code>параметра. | ||
|- | |- | ||
| | |dimensionCountRatio | ||
| | |number | ||
|Отношение запрошенных | |Отношение запрошенных записей измерений к максимальному количеству записей измерений, разрешенных в одном запросе. | ||
|- | |- | ||
| | |metricId | ||
| | |string | ||
|Ключ метрики. | |Ключ метрики. | ||
Если применяется какое-либо преобразование, оно включается здесь. | Если применяется какое-либо преобразование, оно включается здесь. | ||
|- | |- | ||
| | |data | ||
| | |MetricSeries[] | ||
|Точки данных метрики. | |Точки данных метрики. | ||
|- | |- | ||
| | |warnings | ||
| | |string [] | ||
|Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д. | |Список потенциальных предупреждений, влияющих на этот идентификатор. Например, использование устаревших функций и т. д. | ||
|} | |} | ||
==== Объект | ==== Объект <code>AppliedFilter</code> ==== | ||
Вступившие в силу дополнительные фильтры. | Вступившие в силу дополнительные фильтры. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 281: | Строка 281: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |appliedTo | ||
| | |string [] | ||
|Ключи всех метрик, к которым применен этот фильтр. | |Ключи всех метрик, к которым применен этот фильтр. | ||
Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ. | Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ. | ||
|- | |- | ||
| | |filter | ||
| | |Filter | ||
|Фильтр измерений или рядов для метрики. | |Фильтр измерений или рядов для метрики. | ||
|} | |} | ||
==== Объект | ==== Объект <code>Filter</code> ==== | ||
Фильтр измерений или рядов для метрики. | Фильтр измерений или рядов для метрики. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 299: | Строка 299: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |referenceInvocation | ||
| | |Invocation | ||
|Вызов функции, например, <code>entitySelector</code>function. | |Вызов функции, например, <code>entitySelector</code>function. | ||
|- | |- | ||
|targetDimension | |targetDimension | ||
| | |string | ||
|Если тип применяется к измерению, то содержит целевое измерение. | |Если тип применяется к измерению, то содержит целевое измерение. | ||
|- | |- | ||
| | |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>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>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> ==== | ||
Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий. | Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 375: | Строка 393: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |parameter | ||
| | |number | ||
| - | | - | ||
|- | |- | ||
| | |type | ||
| | |string | ||
| - | | - | ||
Элемент может содержать эти значения | Элемент может содержать эти значения | ||
Строка 393: | Строка 411: | ||
|} | |} | ||
==== Объект | ==== Объект <code>MetricSeries</code> ==== | ||
Точки данных для каждого параметра метрики. | Точки данных для каждого параметра метрики. | ||
Строка 402: | Строка 420: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |dimensionMap | ||
| | |object | ||
| - | | - | ||
|- | |- | ||
| | |timestamps | ||
| | |integer [] | ||
|Список временных меток точек данных. | |Список временных меток точек данных. | ||
Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу. | Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу. | ||
|- | |- | ||
| | |dimensions | ||
| | |string[] | ||
|Упорядоченный список измерений, к которым принадлежит список точек данных. | |Упорядоченный список измерений, к которым принадлежит список точек данных. | ||
Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь. | Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь. | ||
|- | |- | ||
| | |values | ||
| | |number [] | ||
|Список значений точек данных. | |Список значений точек данных. | ||
Строка 426: | Строка 444: | ||
=== JSON-модель тела ответа === | === JSON-модель тела ответа === | ||
< | <{ | ||
"totalCount": 3, | "totalCount": 3, | ||
"nextPageKey": "null", | "nextPageKey": "null", | ||
Строка 501: | Строка 519: | ||
} | } | ||
] | ] | ||
} | } | ||
== Примечание о таймфрейме == | == Примечание о таймфрейме == | ||
АппОптима хранит данные во временных интервалах. Объект MetricValue показывает отметку времени ''окончания'' слота. Если время, указанное в параметрах from или to вашего запроса, попадает в временной интервал данных, этот временной интервал включается в ответ. | |||
Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса. | Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса. | ||
АппОптима не предсказывает будущие данные. Временная метка последней точки данных может лежать в будущем из-за принципа интервалов данных, описанного выше. В этом случае этот слот данных имеет неполные данные. | |||
== Примеры == | == Примеры == | ||
Строка 525: | Строка 543: | ||
Ответ в <code>application/json</code>формате. | Ответ в <code>application/json</code>формате. | ||
==== | ==== Curl ==== | ||
С непреобразованными метриками и фильтром entitySelector : | С непреобразованными метриками и фильтром entitySelector : | ||
< | <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' | -H 'Accept: application/json' | ||
С преобразованием, применяемым непосредственно к метрикам: | С преобразованием, применяемым непосредственно к метрикам: | ||
< | <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' | -H 'Accept: application/json' | ||
==== URL-адрес запроса ==== | ==== URL-адрес запроса ==== | ||
С непреобразованными метриками и фильтром entitySelector : | С непреобразованными метриками и фильтром entitySelector : | ||
<code><nowiki>https://mySampleEnv.live. | <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. | <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> | ||
==== Тело ответа ==== | ==== Тело ответа ==== | ||
Результат усекается до трех точек данных на измерение. | Результат усекается до трех точек данных на измерение. | ||
< | <{ | ||
"totalCount": 2, | "totalCount": 2, | ||
"nextPageKey": null, | "nextPageKey": null, | ||
Строка 634: | Строка 652: | ||
} | } | ||
] | ] | ||
} | } | ||
Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accept<code>text/csv; header=present</code> на . | Таблица CSV со строкой заголовка выглядит следующим образом. Чтобы получить его, измените заголовок Accept<code>text/csv; header=present</code> на . | ||
< | <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 | 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 метрик для одного запроса.
Можно указать несколько ключей метрик, разделенных запятыми (например, Если ключ метрики содержит какие-либо символы, ключ необходимо заключить в кавычки (
Например, чтобы запросить метрику с ключом ext:selfmonitoring.jmx.Agents: Введите «APACHE» , вы должны указать этот селектор:
Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( |
query | по желанию |
resolution | string | Желаемое разрешение точек данных.
Вы можете использовать один из следующих вариантов:
Допустимые единицы для временного интервала:
Если не задано, по умолчанию используется 120 точек данных . Например:
|
query | по желанию |
from | string | Начало запрошенного таймфрейма.
Вы можете использовать один из следующих форматов:
Если не установлено, используется относительный таймфрейм в два часа ( |
query | по желанию |
to | string | Конец запрошенного периода времени.
Вы можете использовать один из следующих форматов:
Если не установлено, используется текущая метка времени. |
query | по желанию |
entitySelector | string | Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами.
Вы должны установить один из этих критериев:
Вы можете добавить один или несколько следующих критериев. Значения чувствительны к регистру, и
Дополнительные сведения см. в разделе Селектор объектов в документации АппОптима. Чтобы задать несколько критериев, разделите их запятой ( Поддерживаемая длина строки составляет 2000 символов. Используйте Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр. |
query | по желанию |
mzSelector | string | Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления.
Вы можете установить один или несколько из следующих критериев. Значения чувствительны к регистру и используется
|
query | по желанию |
Ответ
Коды ответов
Код | Тип | Описание |
---|---|---|
200 | Данные метрики | Успех |
400 | Ошибка синтаксиса или проверки. Параметры from и to, entitySelector или разрешение неверны по отдельности или в их комбинированном значении. | |
404 | Метрика не найдена. | |
406 | Неприемлимо. Запрошенный тип носителя не поддерживается. Проверьте заголовок Accept вашего запроса. |
Объекты тела ответа
Объект MetricData
Список метрик и их точек данных.
Элемент | Тип | Описание |
---|---|---|
resolution | string | Разрешение временного интервала в результате. |
nextPageKey | string | Устарело. Это поле возвращено из соображений совместимости. Он всегда имеет значение null .
|
totalCount | integer | Общее количество первичных сущностей в результате.
Имеет |
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 | Вызов функции, например, entitySelector function.
|
targetDimension | string | Если тип применяется к измерению, то содержит целевое измерение. |
referenceString | string [] | Если тип применяется к n измерениям, то содержит целевые измерения. В настоящее время используется только для remainder фильтра.
|
referenceString | string | Для фильтров, которые сопоставляют измерение со значением, например eq или ne , содержит значение, с которым сравнивается измерение.
|
rollup | Rollup | Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий. |
referenceValue | number | Для операндов series фильтров, совпадающих с числом, содержит число для сравнения.
|
operands | Filter [] | Если тип not , and or or , то включает содержащиеся фильтры.andor
|
type | string | Тип этого фильтра определяет, какие другие поля присутствуют. Может быть любым из:
Элемент может содержать эти значения
|
Объект Invocation
Вызов функции, например, entitySelector
function.
Элемент | Тип | Описание |
---|---|---|
args | string [] | Аргументы для передачи функции, например, исходный код селектора сущностей. |
function | string | Вызываемая функция, например entitySelector .
|
Объект Rollup
Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий.
Элемент | Тип | Описание |
---|---|---|
parameter | number | - |
type | string | -
Элемент может содержать эти значения
|
Объект MetricSeries
Точки данных для каждого параметра метрики.
Данные представлены двумя массивами одинаковой длины: timestamps и values . Записи одного и того же индекса из обоих массивов образуют точку данных с отметкой времени.
Элемент | Тип | Описание |
---|---|---|
dimensionMap | object | - |
timestamps | integer [] | Список временных меток точек данных.
Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу. |
dimensions | string[] | Упорядоченный список измерений, к которым принадлежит список точек данных.
Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано |
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