Расширенный редактор запросов: различия между версиями
(Создана пустая страница) |
|||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Чтобы в полной мере использовать возможности запросов '''''Metrics API v2''''' из веб-интерфейса Ключ-АСТРОМ, используйте Редактор запросов в '''расширенном режиме'''. | |||
В '''расширенном режиме''' вы можете: | |||
* Проверить и редактировать созданный вами запрос с помощью настроек веб-интерфейса Ключ-АСТРОМ (при выключенном расширенном режиме). | |||
* Использовать '''''селекторы показателей''''' для применения преобразований, которые в ином случае невозможны. Например, сдвиги временных рамок. | |||
* Использовать '''''выражения метрик''''' для создания простых арифметических операций с несколькими различными значениями метрик. Например, <code>metric A</code> + <code>metric B</code>. | |||
* Работать с '''''селекторами объектов''''', чтобы применять более продвинутые фильтры к своим метрикам. Например, для фильтрации метрики узла Kubernetes для определенного кластера Kubernetes. | |||
== Включить расширенный режим == | |||
Вы можете начать создавать простой запрос через веб-интерфейс, а затем включить '''расширенный режим''', чтобы просмотреть базовый запрос. | |||
Например, если вы начнете выполнение этого запроса с выключенным '''расширенным режимом''': | |||
[[Файл:Image12уйыа.png|граница]] | |||
При включенном '''расширенным режимом''': | |||
[[Файл:Расширенный режим.png|граница]] | |||
Базовый код запроса отображается в том виде, в котором он передается в '''Metrics API v2''': | |||
<code>builtin:host.cpu.usage:splitBy("dt.entity.host"):avg:auto:sort(value(avg,descending)):limit(20)</code> | |||
== Отключение расширенного режима == | |||
Для простых запросов, в которых требуется одно из следующих преобразований, вы можете снова отключить расширенный режим: | |||
* '''Разделить по''' измерениям метрики (если вы не добавили никаких дополнительных измерений с помощью селектора объектов в расширенном режиме) | |||
* '''Фильтровать''', подключенный через связь OR | |||
* '''Сортировать по''' | |||
* '''Ограничение''' | |||
Подробное описание отдельных преобразований см. в разделе '''''Селекторы метрик'''''. | |||
Отключение расширенного режима возможно только в том случае, если преобразования, которые вы редактировали в расширенном режиме, были добавлены при выключенном расширенном режиме. | |||
Например, если вы изначально применили преобразование сортировки при выключенном расширенном режиме, вы можете изменить порядок сортировки с <code>ascending</code> на <code>descending</code> при включенном расширенном режиме, а затем снова отключить расширенный режим. Однако после добавления новых частей в запрос — например, путем добавления преобразований, таких как сдвиг времени или выражения метрик, которые пока невозможны при выключенном расширенном режиме, — вы не сможете снова отключить расширенный режим и продолжить работу. | |||
== Редактирование запроса == | |||
Основные функции редактора запросов одинаковы независимо от того, включен или выключен '''расширенный режим''': | |||
* Чтобы добавить показатель, выберите '''Добавить метрику''', чтобы добавить строку (другую метрику) в запрос. | |||
* Чтобы дублировать метрику, выберите '''Дополнительно (...) > Дублировать,''' чтобы дублировать эту строку (метрику). | |||
* Чтобы удалить метрику, выберите '''Дополнительно (...) > Удалить''', чтобы удалить эту строку (метрику). | |||
* Чтобы изменить порядок показателей, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть внесенные изменения. [[Файл:Image8з.png|граница]] Порядок, в котором показатели перечислены в вашем запросе, влияет на следующее: | |||
** Порядок отображения элементов визуализации: показатели запроса отображаются в порядке сверху вниз, поэтому последний из них отображается поверх остальных | |||
** Порядок столбцов в визуализации таблицы | |||
** Порядок отображения настроек на панели "'''Настройки'''" | |||
* Чтобы попробовать выполнить запрос, нажмите '''Запуск запроса'''. Текст рядом с кнопкой '''Запуск запроса''' отображает состояние последнего запуска. | |||
Основное отличие заключается в способе редактирования запроса и количестве доступных возможностей: | |||
* При отключенном '''расширенном режиме''' веб-интерфейс упрощает создание запроса из пунктов меню, но возможности запроса ограничены | |||
* При включенном '''расширенном режиме''' возможности запроса намного шире, но вам нужно знать, как редактировать запрос | |||
=== Добавить метрику === | |||
Самый простой способ выбрать показатели для запроса - начать с выключенного '''расширенного режима'''. | |||
# Вставьте указатель в строку и начните вводить название показателя. Перечислены соответствующие показатели. Например, введите <code>cpu usage</code>, а затем выберите <code>builtin:host.cpu.usage</code> из списка. <br />[[Файл:Imageссмчм.png|граница|471x471пкс]] | |||
# Вы можете выбирать часто применяемые агрегированные данные, измерения и преобразования: | |||
#* '''Разделить по''': выберите одно из перечисленных измерений для выбранной метрики | |||
#* '''Агрегировать''': выберите <code>Average</code>, <code>Count</code> <code>Maximum</code>, <code>Minimum</code> <code>Sum</code>, <code>Median</code> <code>10-ый процентиль</code>, <code>75-ый процентиль</code> <code>90-ый процентиль</code> Выбранная агрегация применяется после разделения на. Например, если вы выберете <code>10-ый процентиль</code> и разделите на <code>Host</code> для измерительной метрики, такой как <code>builtin:host.cpu.idle</code>, процентиль рассчитывается на основе значений после разделения по хостам. | |||
#* '''Сортировать по''' возрастанию или убыванию | |||
#* '''Фильтровать''': выбрать измерения и фильтрование атрибутов | |||
#* '''Ограничение''': выберите предельное значение | |||
# Включите '''расширенный режим'''. | |||
# Редактируйте результаты по мере необходимости. | |||
#* Копирование и вставка из одной строки в другую | |||
#* Добавляйте, дублируйте и удаляйте строки по мере необходимости | |||
Как добавить метрику в '''расширенном режиме''' | |||
# Вставьте указатель в строку и начните вводить ключ показателя. Перечислены соответствующие показатели. Например, введите <code>host.cpu</code>, а затем выберите <code>builtin:host.cpu.usage</code> из списка. [[Файл:Image1ауф.png|граница]] | |||
# Вам необходимо добавить все преобразования вручную. | |||
=== Редактирование метрик === | |||
В окне редактирования: | |||
* Введите двоеточие (<code>:</code>), чтобы указать, что можно добавить в точке вставки, а затем выберите из списка. | |||
* Нажмите '''Shift-Enter''', чтобы принудительно ввести новую строку. Это может быть полезно для удобства чтения и не влияет на оценку запроса. | |||
* Выберите показатель или число и нажмите '''(''' на клавиатуре, чтобы заключить выделенное значение в круглые скобки. | |||
Подробнее о показателях | |||
* Обзор показателей см. в разделе '''''[[Метрики]]'''''. | |||
* Чтобы ознакомиться со списком встроенных метрик, см. раздел '''''[[Встроенные метрики]]'''''. | |||
* Чтобы узнать о внедрении пользовательских метрик в Ключ-АСТРОМ, см. раздел '''''[[Пользовательские метрики]]'''''. | |||
* Используйте раздел в Ключ-АСТРОМ '''Метрики''' для: | |||
** Проверки сведений о метриках | |||
** Открытия выбранной метрики в редакторе через кнопку '''Создать график''' | |||
=== Операнды === | |||
Операнд - это метрика или число. | |||
* Каждый операнд должен быть заключен в круглые скобки <code>()</code>. Вы также можете использовать квадратные скобки для обеспечения приоритета. | |||
* Все показатели с более чем 1 точкой данных, участвующие в выражении показателя, должны иметь одинаковое разрешение. | |||
* В качестве операнда можно использовать любую метрику, включая метрики, измененные любой цепочкой преобразований, и вы можете применить преобразования к результату выражения см. в разделе [[Селектор показателей|'''''Селектор показателей''''']]. | |||
=== Выражения === | |||
Выражения метрик позволяют применять простые арифметические операции к операндам (метрикам или числам). | |||
Например, это выражение вычисляет соотношение (в процентах) двух показателей: | |||
<code>((metric1)/(metric2))*(100)</code> | |||
Основываясь на приведенном выше примере, у нас есть следующие основные компоненты для работы: | |||
* Операнд: метрика или число | |||
* Круглые скобки: <code>()</code> | |||
* Арифметические операторы: <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code> | |||
* Отрицание: <code>-()</code> | |||
В арифметических операциях используются точки данных кортежей (уникальные комбинации метрика—измерение-значение измерения) метрик. Идентичные кортежи каждой метрики соединяются, а затем их точки данных выравниваются. Подробнее см. в разделе [[Выражение метрик|'''''Выражение метрик''''']]. | |||
== Пример: delta == | |||
Узнайте, как: | |||
* Создать метрику в расширенном режиме | |||
* Использовать '''delta''' | |||
В этом примере показано, как преобразовать метрику калибровки в метрику дельта-подсчета. | |||
# При включенном '''расширенном режиме''' мы собрали следующий измерительный показатель: <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy()</code> выбрав следующую серию вариантов из предложенных в редакторе: '''Выберите метрику''': вводите часть ключа метрики, пока не увидите метрику, которую хотите выбрать. [[Файл:7.png|граница]] Выберите '''splitBy''': Введите двоеточие (<code>:</code>), за которым следует строка неполного поиска того, что вы хотите добавить (в данном случае, <code>splitBy</code>), затем выберите это из списка. [[Файл:8.png|граница]] '''Промежуточное состояние:''' [[Файл:9.png|граница]] <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy()</code> | |||
# Но мы решили, что хотим отобразить это как показатель дельта-подсчета. Выберите '''avg''': введите двоеточие (<code>:</code>), за которым следует строка неполного поиска для <code>avg</code>, затем выберите его из списка. [[Файл:10.png|граница]] Выберите '''delta''': введите двоеточие (<code>:</code>), за которым следует строка неполного поиска для <code>delta</code>, затем выберите ее из списка. [[Файл:11.png|граница]] '''Конечное состояние:''' [[Файл:12.png|граница]] <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy():avg:delta</code> | |||
# Запустите запрос. | |||
== Пример: Вычисление частоты ошибок == | |||
Узнайте, как: | |||
* Объединить две строки в одну с помощью метрического выражения | |||
* Выполнить простой расчет | |||
В этом примере мы хотим отобразить частоту ошибок для страницы конверсии. Мы можем начать с этих показателей: | |||
* Количество действий (<code>builtin:apps.web.action.count.load.browser</code>) | |||
* Количество ошибок (<code>builtin:apps.web.action.countOfErrors</code>) | |||
Но простые подсчеты не рассказывают всей истории. На основе подсчета действий и ошибок мы хотим рассчитать третий показатель, чтобы сообщить о частоте ошибок на страницах с конверсией. Запрос для третьего показателя разделит количество ошибок на количество действий и отфильтрует название страницы. | |||
Мы можем создать этот запрос практически без ввода текста. | |||
# Если '''Расширенный режим''' отключен, выберите показатели, агрегации и фильтры. [[Файл:13.png|граница]] | |||
# При включенном '''расширенном режиме''' просматривайте код запроса. [[Файл:15.png|граница]] | |||
# Скопируйте и вставьте содержимое поля редактирования '''B''' в поле редактирования '''A''', объединив два запроса с добавлением круглых скобок и знака разделения, а затем удалите '''B'''. Если '''A''' является первым операндом: <code>builtin:apps.web.action.countOfErrors:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)</code> и '''B''' является вторым операндом: <code>builtin:apps.web.action.count.load.browser:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)</code> мы хотим разделить <code>(A)/(B)</code>:<code>((builtin:apps.web.action.countOfErrors:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20))</code> <code>/</code> <code>(builtin:apps.web.action.count.load.browser:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20))</code> | |||
# Результат должен быть примерно таким: [[Файл:16.png|граница]] | |||
# Запустите запрос. | |||
Теперь вы можете добавлять пороговые значения и закреплять запрос на панели мониторинга. | |||
== Пример: Сравнение показателя с предыдущим таймфреймом == | |||
Узнайте, как добавить контекст к вашим визуализациям, таким как линейные диаграммы, чтобы ответить на вопрос: "Что считается нормальным?" | |||
При просмотре данных на ваших информационных панелях сами по себе строки или отдельные значения часто оказываются совершенно бесполезными, особенно для новых пользователей, которым может не хватать знаний и опыта, чтобы быстро определить, можно ли считать аномалией скачок на линейном графике или определенное число. Добавление контекста к вашим визуализациям может существенно улучшить интерпретацию. | |||
В этом примере мы узнаем, как дублировать вашу метрику, а затем применить <code>:timeshift</code> преобразование для добавления контекста к вашим линейным диаграммам. Начнем с <code>builtin:apps.web.largestContentfulPaint.load.browser</code>встроенной метрики [https://web.dev/articles/vitals?hl=ru#core-web-vitals '''''Core web vital'''''], которая дает вам максимально точные показатели paint для всех действий при загрузке всех ваших веб-приложений. | |||
Мы можем создать этот запрос практически без ввода текста. | |||
# Если '''Расширенный режим''' отключен, выберите метрику и настройте значения. | |||
# Продублируйте показатель, выбрав '''Дополнительно (...) > Дублировать''' для этой строки. | |||
# Включите '''расширенный режим''' для просмотра кода запроса. | |||
# Добавьте сдвиг по времени '''(-1 w)''' в конце второго запроса '''(B)'''. | |||
# Запустите запрос. | |||
Окончательный код запроса для '''A''' и '''B''' должен выглядеть примерно так (в зависимости от выбранных вами параметров на шаге 1): | |||
'''A''' без сдвига во времени: | |||
<code>builtin:apps.web.largestContentfulPaint.load.browser:splitBy():percentile(75):auto:sort(value(percentile(75),descending)):limit(10)</code> | |||
'''B''' с примененным временным сдвигом: | |||
<code>builtin:apps.web.largestContentfulPaint.load.browser:timeshift(-1w):splitBy():percentile(75):auto:sort(value(percentile(75),descending)):limit(10)</code> | |||
== Пример: Фильтры взаимосвязей == | |||
Узнайте, как использовать '''''[[селектор объектов]]''''' и отношения для фильтрации показателя по значениям связанного объекта. | |||
В этом примере мы: | |||
* Начните с метрики <code>builtin:cloud.kubernetes.node.cores</code> | |||
* Примените <code>in</code> фильтр для узлов Kubernetes, например <code>dt.entity.kubernetes_node</code> | |||
* Используйте селектор сущностей для проверки всех узлов Kubernetes, запущенных в данном кластере Kubernetes | |||
Давайте разберем селектор объектов по его компонентам, чтобы лучше объяснить их, прежде чем переходить к окончательному запросу: | |||
* <code>type(KUBERNETES_NODE)</code> определяет тип объекта, который мы ищем. | |||
* <code>toRelationships.IS_KUBERNETES_CLUSTER_OF_NODE(</code> определяет взаимосвязь между узлом (левая часть) и кластером (правая часть; см. Ниже). Помните, нам нужны все узлы Kubernetes в данном кластере, чтобы его можно было интерпретировать следующим образом: "из объекта, который я определил ранее (узел Kubernetes), я ищу все кластеры Kubernetes этого узла. | |||
* <code>type(KUBERNETES_CLUSTER),entityId(KUBERNETES_CLUSTER-A943C5CF0A41A684))")))</code> объект в правой части этой связи определяется как кластер Kubernetes clusteran и заданный идентификатор объекта. | |||
Окончательный запрос выглядит следующим образом: | |||
<code>(builtin:cloud.kubernetes.node.cores:avg)</code> | |||
<code>:filter(in("dt.entity.kubernetes_node",</code> | |||
<code>entitySelector("type(KUBERNETES_NODE),toRelationships.IS_KUBERNETES_CLUSTER_OF_NODE(type(KUBERNETES_CLUSTER),entityId(KUBERNETES_CLUSTER-A943C5CF0A41A684))")))</code> |
Текущая версия на 11:53, 28 июня 2024
Чтобы в полной мере использовать возможности запросов Metrics API v2 из веб-интерфейса Ключ-АСТРОМ, используйте Редактор запросов в расширенном режиме.
В расширенном режиме вы можете:
- Проверить и редактировать созданный вами запрос с помощью настроек веб-интерфейса Ключ-АСТРОМ (при выключенном расширенном режиме).
- Использовать селекторы показателей для применения преобразований, которые в ином случае невозможны. Например, сдвиги временных рамок.
- Использовать выражения метрик для создания простых арифметических операций с несколькими различными значениями метрик. Например,
metric A
+metric B
. - Работать с селекторами объектов, чтобы применять более продвинутые фильтры к своим метрикам. Например, для фильтрации метрики узла Kubernetes для определенного кластера Kubernetes.
Включить расширенный режим
Вы можете начать создавать простой запрос через веб-интерфейс, а затем включить расширенный режим, чтобы просмотреть базовый запрос.
Например, если вы начнете выполнение этого запроса с выключенным расширенным режимом:
При включенном расширенным режимом:
Базовый код запроса отображается в том виде, в котором он передается в Metrics API v2:
builtin:host.cpu.usage:splitBy("dt.entity.host"):avg:auto:sort(value(avg,descending)):limit(20)
Отключение расширенного режима
Для простых запросов, в которых требуется одно из следующих преобразований, вы можете снова отключить расширенный режим:
- Разделить по измерениям метрики (если вы не добавили никаких дополнительных измерений с помощью селектора объектов в расширенном режиме)
- Фильтровать, подключенный через связь OR
- Сортировать по
- Ограничение
Подробное описание отдельных преобразований см. в разделе Селекторы метрик.
Отключение расширенного режима возможно только в том случае, если преобразования, которые вы редактировали в расширенном режиме, были добавлены при выключенном расширенном режиме.
Например, если вы изначально применили преобразование сортировки при выключенном расширенном режиме, вы можете изменить порядок сортировки с ascending
на descending
при включенном расширенном режиме, а затем снова отключить расширенный режим. Однако после добавления новых частей в запрос — например, путем добавления преобразований, таких как сдвиг времени или выражения метрик, которые пока невозможны при выключенном расширенном режиме, — вы не сможете снова отключить расширенный режим и продолжить работу.
Редактирование запроса
Основные функции редактора запросов одинаковы независимо от того, включен или выключен расширенный режим:
- Чтобы добавить показатель, выберите Добавить метрику, чтобы добавить строку (другую метрику) в запрос.
- Чтобы дублировать метрику, выберите Дополнительно (...) > Дублировать, чтобы дублировать эту строку (метрику).
- Чтобы удалить метрику, выберите Дополнительно (...) > Удалить, чтобы удалить эту строку (метрику).
- Чтобы изменить порядок показателей, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть внесенные изменения. Порядок, в котором показатели перечислены в вашем запросе, влияет на следующее:
- Порядок отображения элементов визуализации: показатели запроса отображаются в порядке сверху вниз, поэтому последний из них отображается поверх остальных
- Порядок столбцов в визуализации таблицы
- Порядок отображения настроек на панели "Настройки"
- Чтобы попробовать выполнить запрос, нажмите Запуск запроса. Текст рядом с кнопкой Запуск запроса отображает состояние последнего запуска.
Основное отличие заключается в способе редактирования запроса и количестве доступных возможностей:
- При отключенном расширенном режиме веб-интерфейс упрощает создание запроса из пунктов меню, но возможности запроса ограничены
- При включенном расширенном режиме возможности запроса намного шире, но вам нужно знать, как редактировать запрос
Добавить метрику
Самый простой способ выбрать показатели для запроса - начать с выключенного расширенного режима.
- Вставьте указатель в строку и начните вводить название показателя. Перечислены соответствующие показатели. Например, введите
cpu usage
, а затем выберитеbuiltin:host.cpu.usage
из списка. - Вы можете выбирать часто применяемые агрегированные данные, измерения и преобразования:
- Разделить по: выберите одно из перечисленных измерений для выбранной метрики
- Агрегировать: выберите
Average
,Count
Maximum
,Minimum
Sum
,Median
10-ый процентиль
,75-ый процентиль
90-ый процентиль
Выбранная агрегация применяется после разделения на. Например, если вы выберете10-ый процентиль
и разделите наHost
для измерительной метрики, такой какbuiltin:host.cpu.idle
, процентиль рассчитывается на основе значений после разделения по хостам. - Сортировать по возрастанию или убыванию
- Фильтровать: выбрать измерения и фильтрование атрибутов
- Ограничение: выберите предельное значение
- Включите расширенный режим.
- Редактируйте результаты по мере необходимости.
- Копирование и вставка из одной строки в другую
- Добавляйте, дублируйте и удаляйте строки по мере необходимости
Как добавить метрику в расширенном режиме
- Вставьте указатель в строку и начните вводить ключ показателя. Перечислены соответствующие показатели. Например, введите
host.cpu
, а затем выберитеbuiltin:host.cpu.usage
из списка. - Вам необходимо добавить все преобразования вручную.
Редактирование метрик
В окне редактирования:
- Введите двоеточие (
:
), чтобы указать, что можно добавить в точке вставки, а затем выберите из списка. - Нажмите Shift-Enter, чтобы принудительно ввести новую строку. Это может быть полезно для удобства чтения и не влияет на оценку запроса.
- Выберите показатель или число и нажмите ( на клавиатуре, чтобы заключить выделенное значение в круглые скобки.
Подробнее о показателях
- Обзор показателей см. в разделе Метрики.
- Чтобы ознакомиться со списком встроенных метрик, см. раздел Встроенные метрики.
- Чтобы узнать о внедрении пользовательских метрик в Ключ-АСТРОМ, см. раздел Пользовательские метрики.
- Используйте раздел в Ключ-АСТРОМ Метрики для:
- Проверки сведений о метриках
- Открытия выбранной метрики в редакторе через кнопку Создать график
Операнды
Операнд - это метрика или число.
- Каждый операнд должен быть заключен в круглые скобки
()
. Вы также можете использовать квадратные скобки для обеспечения приоритета. - Все показатели с более чем 1 точкой данных, участвующие в выражении показателя, должны иметь одинаковое разрешение.
- В качестве операнда можно использовать любую метрику, включая метрики, измененные любой цепочкой преобразований, и вы можете применить преобразования к результату выражения см. в разделе Селектор показателей.
Выражения
Выражения метрик позволяют применять простые арифметические операции к операндам (метрикам или числам).
Например, это выражение вычисляет соотношение (в процентах) двух показателей:
((metric1)/(metric2))*(100)
Основываясь на приведенном выше примере, у нас есть следующие основные компоненты для работы:
- Операнд: метрика или число
- Круглые скобки:
()
- Арифметические операторы:
+
,-
,*
,/
- Отрицание:
-()
В арифметических операциях используются точки данных кортежей (уникальные комбинации метрика—измерение-значение измерения) метрик. Идентичные кортежи каждой метрики соединяются, а затем их точки данных выравниваются. Подробнее см. в разделе Выражение метрик.
Пример: delta
Узнайте, как:
- Создать метрику в расширенном режиме
- Использовать delta
В этом примере показано, как преобразовать метрику калибровки в метрику дельта-подсчета.
- При включенном расширенном режиме мы собрали следующий измерительный показатель:
builtin:cloud.kubernetes.pod.containerRestarts:splitBy()
выбрав следующую серию вариантов из предложенных в редакторе: Выберите метрику: вводите часть ключа метрики, пока не увидите метрику, которую хотите выбрать. Выберите splitBy: Введите двоеточие (:
), за которым следует строка неполного поиска того, что вы хотите добавить (в данном случае,splitBy
), затем выберите это из списка. Промежуточное состояние:builtin:cloud.kubernetes.pod.containerRestarts:splitBy()
- Но мы решили, что хотим отобразить это как показатель дельта-подсчета. Выберите avg: введите двоеточие (
:
), за которым следует строка неполного поиска дляavg
, затем выберите его из списка. Выберите delta: введите двоеточие (:
), за которым следует строка неполного поиска дляdelta
, затем выберите ее из списка. Конечное состояние:builtin:cloud.kubernetes.pod.containerRestarts:splitBy():avg:delta
- Запустите запрос.
Пример: Вычисление частоты ошибок
Узнайте, как:
- Объединить две строки в одну с помощью метрического выражения
- Выполнить простой расчет
В этом примере мы хотим отобразить частоту ошибок для страницы конверсии. Мы можем начать с этих показателей:
- Количество действий (
builtin:apps.web.action.count.load.browser
) - Количество ошибок (
builtin:apps.web.action.countOfErrors
)
Но простые подсчеты не рассказывают всей истории. На основе подсчета действий и ошибок мы хотим рассчитать третий показатель, чтобы сообщить о частоте ошибок на страницах с конверсией. Запрос для третьего показателя разделит количество ошибок на количество действий и отфильтрует название страницы.
Мы можем создать этот запрос практически без ввода текста.
- Если Расширенный режим отключен, выберите показатели, агрегации и фильтры.
- При включенном расширенном режиме просматривайте код запроса.
- Скопируйте и вставьте содержимое поля редактирования B в поле редактирования A, объединив два запроса с добавлением круглых скобок и знака разделения, а затем удалите B. Если A является первым операндом:
builtin:apps.web.action.countOfErrors:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)
и B является вторым операндом:builtin:apps.web.action.count.load.browser:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)
мы хотим разделить(A)/(B)
:((builtin:apps.web.action.countOfErrors:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20))
/
(builtin:apps.web.action.count.load.browser:filter(and(or(in("dt.entity.application_method",entitySelector("type(application_method),entityName.equals(~"loading of page /easytravel/home~")"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20))
- Результат должен быть примерно таким:
- Запустите запрос.
Теперь вы можете добавлять пороговые значения и закреплять запрос на панели мониторинга.
Пример: Сравнение показателя с предыдущим таймфреймом
Узнайте, как добавить контекст к вашим визуализациям, таким как линейные диаграммы, чтобы ответить на вопрос: "Что считается нормальным?"
При просмотре данных на ваших информационных панелях сами по себе строки или отдельные значения часто оказываются совершенно бесполезными, особенно для новых пользователей, которым может не хватать знаний и опыта, чтобы быстро определить, можно ли считать аномалией скачок на линейном графике или определенное число. Добавление контекста к вашим визуализациям может существенно улучшить интерпретацию.
В этом примере мы узнаем, как дублировать вашу метрику, а затем применить :timeshift
преобразование для добавления контекста к вашим линейным диаграммам. Начнем с builtin:apps.web.largestContentfulPaint.load.browser
встроенной метрики Core web vital, которая дает вам максимально точные показатели paint для всех действий при загрузке всех ваших веб-приложений.
Мы можем создать этот запрос практически без ввода текста.
- Если Расширенный режим отключен, выберите метрику и настройте значения.
- Продублируйте показатель, выбрав Дополнительно (...) > Дублировать для этой строки.
- Включите расширенный режим для просмотра кода запроса.
- Добавьте сдвиг по времени (-1 w) в конце второго запроса (B).
- Запустите запрос.
Окончательный код запроса для A и B должен выглядеть примерно так (в зависимости от выбранных вами параметров на шаге 1):
A без сдвига во времени:
builtin:apps.web.largestContentfulPaint.load.browser:splitBy():percentile(75):auto:sort(value(percentile(75),descending)):limit(10)
B с примененным временным сдвигом:
builtin:apps.web.largestContentfulPaint.load.browser:timeshift(-1w):splitBy():percentile(75):auto:sort(value(percentile(75),descending)):limit(10)
Пример: Фильтры взаимосвязей
Узнайте, как использовать селектор объектов и отношения для фильтрации показателя по значениям связанного объекта.
В этом примере мы:
- Начните с метрики
builtin:cloud.kubernetes.node.cores
- Примените
in
фильтр для узлов Kubernetes, напримерdt.entity.kubernetes_node
- Используйте селектор сущностей для проверки всех узлов Kubernetes, запущенных в данном кластере Kubernetes
Давайте разберем селектор объектов по его компонентам, чтобы лучше объяснить их, прежде чем переходить к окончательному запросу:
type(KUBERNETES_NODE)
определяет тип объекта, который мы ищем.toRelationships.IS_KUBERNETES_CLUSTER_OF_NODE(
определяет взаимосвязь между узлом (левая часть) и кластером (правая часть; см. Ниже). Помните, нам нужны все узлы Kubernetes в данном кластере, чтобы его можно было интерпретировать следующим образом: "из объекта, который я определил ранее (узел Kubernetes), я ищу все кластеры Kubernetes этого узла.type(KUBERNETES_CLUSTER),entityId(KUBERNETES_CLUSTER-A943C5CF0A41A684))")))
объект в правой части этой связи определяется как кластер Kubernetes clusteran и заданный идентификатор объекта.
Окончательный запрос выглядит следующим образом:
(builtin:cloud.kubernetes.node.cores:avg)
:filter(in("dt.entity.kubernetes_node",
entitySelector("type(KUBERNETES_NODE),toRelationships.IS_KUBERNETES_CLUSTER_OF_NODE(type(KUBERNETES_CLUSTER),entityId(KUBERNETES_CLUSTER-A943C5CF0A41A684))")))