Получение точки данных метрики: различия между версиями
ENetrebin (обсуждение | вклад) (Новая страница: «Получает точки данных указанных показателей. Вы можете получить либо одну агрегированн...») |
ENetrebin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
'''''[[API Ключ-АСТРОМ]] / [[API Ключ-АСТРОМ#.D0.AD.D0.BD.D0.B4.D0.BF.D0.BE.D0.B9.D0.BD.D1.82.D1.8B%20.D1.81.D1.80.D0.B5.D0.B4.D1.8B|Эндпойнты среды]] / [[API Ключ-АСТРОМ#.D0.A0.D0.B0.D0.B7.D0.B2.D1.91.D1.80.D1.82.D1.8B.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5|Развёртывание]] / Метрики v2 / Получение точки данных метрики''''' | |||
Получает точки данных указанных показателей. | Получает точки данных указанных показателей. | ||
Вы можете получить либо одну агрегированную точку данных на | Вы можете получить либо одну агрегированную точку данных на запись (уникальные комбинации метрика-измерение-значение измерения), либо список точек данных на запись. См. описание параметра разрешения запроса для получения дополнительной информации. | ||
Применяются следующие ограничения: | Применяются следующие ограничения: | ||
* Количество точек данных ограничено 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: | Строка 24: | ||
Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка. | Если с запросом не предоставлен заголовок Accept<code>application/json</code> , возвращается полезная нагрузка. | ||
{| class="wikitable" | {| class="wikitable" | ||
| rowspan="3" | | | rowspan="3" |GET | ||
| | |Managed | ||
|<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: | Строка 43: | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
! | !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: | Строка 61: | ||
<code>"ext:selfmonitoring.jmx.Agents: Type ~"APACHE~""</code> | <code>"ext:selfmonitoring.jmx.Agents: Type ~"APACHE~""</code> | ||
Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации | Вы можете установить дополнительные операторы преобразования, разделенные двоеточием ( <code>:</code>). Дополнительную информацию о доступных преобразованиях результатов и синтаксисе см. в разделе Преобразования селектора показателей в документации Ключ-АСТРОМ. | ||
| | |query | ||
|по желанию | |по желанию | ||
|- | |- | ||
| | |resolution | ||
| | |string | ||
|Желаемое разрешение точек данных. | |Желаемое разрешение точек данных. | ||
Строка 74: | Строка 76: | ||
Допустимые единицы для временного интервала: | Допустимые единицы для временного интервала: | ||
* <code>m</code>: | * <code>m</code>: минуты | ||
* <code>h</code>: часы | * <code>h</code>: часы | ||
* <code>d</code>: дней | * <code>d</code>: дней | ||
Строка 87: | Строка 89: | ||
* Получите точки данных с разницей в 10 минут:<code>resolution=10m</code> | * Получите точки данных с разницей в 10 минут:<code>resolution=10m</code> | ||
* Получите точки данных с разницей в 3 недели:<code>resolution=3w</code> | * Получите точки данных с разницей в 3 недели:<code>resolution=3w</code> | ||
| | |query | ||
|по желанию | |по желанию | ||
|- | |- | ||
| | |from | ||
| | |string | ||
|Начало запрошенного таймфрейма. | |Начало запрошенного таймфрейма. | ||
Строка 99: | Строка 101: | ||
* Человекочитаемый формат <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: | Строка 109: | ||
Если не установлено, используется относительный таймфрейм в два часа ( <code>now-2h</code>). | Если не установлено, используется относительный таймфрейм в два часа ( <code>now-2h</code>). | ||
| | |query | ||
|по желанию | |по желанию | ||
|- | |- | ||
| | |to | ||
| | |string | ||
|Конец запрошенного периода времени. | |Конец запрошенного периода времени. | ||
Строка 119: | Строка 121: | ||
* Человекочитаемый формат <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: | Строка 129: | ||
Если не установлено, используется текущая метка времени. | Если не установлено, используется текущая метка времени. | ||
| | |query | ||
|по желанию | |по желанию | ||
|- | |- | ||
| | |entitySelector | ||
| | |string | ||
|Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами. | |Задает область сущности запроса. В ответ включаются только точки данных, доставленные совпавшими объектами. | ||
Строка 137: | Строка 139: | ||
* Тип объекта:<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: | Строка 151: | ||
** <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: | Строка 161: | ||
* Отрицание: <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: | Строка 170: | ||
Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр. | Чтобы установить универсальную область, соответствующую всем объектам, опустите этот параметр. | ||
| | |query | ||
|по желанию | |по желанию | ||
|- | |- | ||
|mzSelector | |mzSelector | ||
| | |string | ||
|Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления. | |Область зоны управления запроса. В ответ включаются только данные показателей, относящиеся к указанным зонам управления. | ||
Строка 179: | Строка 181: | ||
* <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: | Строка 194: | ||
|- | |- | ||
|200 | |200 | ||
| | |Данные метрики | ||
|Успех | |Успех | ||
|- | |- | ||
Строка 210: | Строка 212: | ||
=== Объекты тела ответа === | === Объекты тела ответа === | ||
==== Объект | ==== Объект <code>MetricData</code> ==== | ||
Список метрик и их точек данных. | Список метрик и их точек данных. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 217: | Строка 219: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |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: | Строка 250: | ||
|- | |- | ||
|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: | Строка 283: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |appliedTo | ||
| | |string [] | ||
|Ключи всех метрик, к которым применен этот фильтр. | |Ключи всех метрик, к которым применен этот фильтр. | ||
Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ. | Может содержать несколько метрик для сложных выражений и всегда по крайней мере один ключ. | ||
|- | |- | ||
| | |filter | ||
| | |Filter | ||
|Фильтр измерений или рядов для метрики. | |Фильтр измерений или рядов для метрики. | ||
|} | |} | ||
==== Объект | ==== Объект <code>Filter</code> ==== | ||
Фильтр измерений или рядов для метрики. | Фильтр измерений или рядов для метрики. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 299: | Строка 301: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |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: | Строка 352: | ||
Элемент может содержать эти значения | Элемент может содержать эти значения | ||
* <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: | Строка 379: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |args | ||
| | |string [] | ||
|Аргументы для передачи функции, например, исходный код селектора сущностей. | |Аргументы для передачи функции, например, исходный код селектора сущностей. | ||
|- | |- | ||
| | |function | ||
| | |string | ||
|Вызываемая функция, например <code>entitySelector</code>. | |Вызываемая функция, например <code>entitySelector</code>. | ||
|} | |} | ||
==== Объект | ==== Объект <code>Rollup</code> ==== | ||
Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий. | Способ просмотра серии как одного значения для целей сортировки или фильтров на основе серий. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 375: | Строка 395: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |parameter | ||
| | |number | ||
| - | | - | ||
|- | |- | ||
| | |type | ||
| | |string | ||
| - | | - | ||
Элемент может содержать эти значения | Элемент может содержать эти значения | ||
Строка 393: | Строка 413: | ||
|} | |} | ||
==== Объект | ==== Объект <code>MetricSeries</code> ==== | ||
Точки данных для каждого параметра метрики. | Точки данных для каждого параметра метрики. | ||
Строка 402: | Строка 422: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |dimensionMap | ||
| | |object | ||
| - | | - | ||
|- | |- | ||
| | |timestamps | ||
| | |integer [] | ||
|Список временных меток точек данных. | |Список временных меток точек данных. | ||
Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу. | Значение точки данных для каждого времени из этого массива находится в массиве значений по тому же индексу. | ||
|- | |- | ||
| | |dimensions | ||
| | |string[] | ||
|Упорядоченный список измерений, к которым принадлежит список точек данных. | |Упорядоченный список измерений, к которым принадлежит список точек данных. | ||
Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь. | Каждая метрика может иметь определенное количество измерений. Размеры, превышающие это число, объединяются в один, как показано <code>null</code>здесь. | ||
|- | |- | ||
| | |values | ||
| | |number [] | ||
|Список значений точек данных. | |Список значений точек данных. | ||
Строка 504: | Строка 524: | ||
== Примечание о таймфрейме == | == Примечание о таймфрейме == | ||
Ключ-АСТРОМ хранит данные во временных интервалах. Объект MetricValue показывает отметку времени ''окончания'' слота. Если время, указанное в параметрах from или to вашего запроса, попадает в временной интервал данных, этот временной интервал включается в ответ. | |||
Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса. | Если временная метка последнего слота данных выходит за пределы указанного временного интервала, последняя точка данных ответа имеет более ''позднюю'' временную метку, чем указано в параметре запроса. | ||
Ключ-АСТРОМ не предсказывает будущие данные. Временная метка последней точки данных может лежать в будущем из-за принципа интервалов данных, описанного выше. В этом случае этот слот данных имеет неполные данные. | |||
== Примеры == | == Примеры == | ||
Строка 525: | Строка 545: | ||
Ответ в <code>application/json</code>формате. | Ответ в <code>application/json</code>формате. | ||
==== | ==== Curl ==== | ||
С непреобразованными метриками и фильтром entitySelector : | С непреобразованными метриками и фильтром entitySelector : | ||
<code>curl -L -X GET ' | <code>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> | ||
С преобразованием, применяемым непосредственно к метрикам: | С преобразованием, применяемым непосредственно к метрикам: | ||
<code>curl -L -X GET '<nowiki>https://mySampleEnv.live. | <code>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'</code> | ||
Строка 537: | Строка 557: | ||
==== 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> | ||
==== Тело ответа ==== | ==== Тело ответа ==== |
Текущая версия на 16:21, 1 ноября 2024
API Ключ-АСТРОМ / Эндпойнты среды / Развёртывание / Метрики v2 / Получение точки данных метрики
Получает точки данных указанных показателей.
Вы можете получить либо одну агрегированную точку данных на запись (уникальные комбинации метрика-измерение-значение измерения), либо список точек данных на запись. См. описание параметра разрешения запроса для получения дополнительной информации.
Применяются следующие ограничения:
- Количество точек данных ограничено 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 | Managed | 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