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

Расширенный редактор запросов: различия между версиями

Материал из Документация АппОптима
(Создана пустая страница)
 
Нет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
Чтобы в полной мере использовать возможности запросов '''''Metrics API v2''''' из веб-интерфейса АппОптима, используйте Редактор запросов в '''расширенном режиме'''.


В '''расширенном режиме''' вы можете:
* Проверить и редактировать созданный вами запрос с помощью настроек веб-интерфейса АппОптима (при выключенном расширенном режиме).
* Использовать '''''селекторы показателей''''' для применения преобразований, которые в ином случае невозможны. Например, сдвиги временных рамок.
* Использовать '''''выражения метрик''''' для создания простых арифметических операций с несколькими различными значениями метрик. Например, <code>metric A</code> + <code>metric B</code>.
* Работать с '''''селекторами объектов''''', чтобы применять более продвинутые фильтры к своим метрикам. Например, для фильтрации метрики узла Kubernetes для определенного кластера Kubernetes.
== Включить расширенный режим ==
Вы можете начать создавать простой запрос через веб-интерфейс, а затем включить '''расширенный режим''', чтобы просмотреть базовый запрос.
Например, если вы начнете выполнение этого запроса с выключенным '''расширенным режимом''':
[[Файл:Image12уйыа.png|граница|1084x1084пкс]]
При включенном '''расширенным режимом''':
[[Файл:Расширенный режим.png|граница|1083x1083пкс]]
Базовый код запроса отображается в том виде, в котором он передается в '''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|граница|1049x1049пкс]]
# Вам необходимо добавить все преобразования вручную.
=== Редактирование метрик ===
В окне редактирования:
* Введите двоеточие (<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|граница|1068x1068пкс]]  Выберите '''splitBy''': Введите двоеточие (<code>:</code>), за которым следует строка неполного поиска того, что вы хотите добавить (в данном случае, <code>splitBy</code>), затем выберите это из списка.  [[Файл:8.png|граница|1062x1062пкс]]  '''Промежуточное состояние:'''  [[Файл:9.png|граница|1059x1059пкс]]  <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy()</code>
# Но мы решили, что хотим отобразить это как показатель дельта-подсчета.  Выберите '''avg''': введите двоеточие (<code>:</code>), за которым следует строка неполного поиска для <code>avg</code>, затем выберите его из списка.  [[Файл:10.png|граница|1059x1059пкс]]  Выберите '''delta''': введите двоеточие (<code>:</code>), за которым следует строка неполного поиска для <code>delta</code>, затем выберите ее из списка.  [[Файл:11.png|граница|1056x1056пкс]]  '''Конечное состояние:'''  [[Файл:12.png|граница|1059x1059пкс]]  <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|граница|1067x1067пкс]]
# При включенном '''расширенном режиме''' просматривайте код запроса. [[Файл:15.png|граница|1069x1069пкс]]
# Скопируйте и вставьте содержимое поля редактирования '''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|граница|1068x1068пкс]]
# Запустите запрос.
Теперь вы можете добавлять пороговые значения и закреплять запрос на панели мониторинга.
== Пример: Сравнение показателя с предыдущим таймфреймом ==
Узнайте, как добавить контекст к вашим визуализациям, таким как линейные диаграммы, чтобы ответить на вопрос: "Что считается нормальным?"
При просмотре данных на ваших информационных панелях сами по себе строки или отдельные значения часто оказываются совершенно бесполезными, особенно для новых пользователей, которым может не хватать знаний и опыта, чтобы быстро определить, можно ли считать аномалией скачок на линейном графике или определенное число. Добавление контекста к вашим визуализациям может существенно улучшить интерпретацию.
В этом примере мы узнаем, как дублировать вашу метрику, а затем применить <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>

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

Чтобы в полной мере использовать возможности запросов Metrics API v2 из веб-интерфейса АппОптима, используйте Редактор запросов в расширенном режиме.

В расширенном режиме вы можете:

  • Проверить и редактировать созданный вами запрос с помощью настроек веб-интерфейса АппОптима (при выключенном расширенном режиме).
  • Использовать селекторы показателей для применения преобразований, которые в ином случае невозможны. Например, сдвиги временных рамок.
  • Использовать выражения метрик для создания простых арифметических операций с несколькими различными значениями метрик. Например, metric A + metric B.
  • Работать с селекторами объектов, чтобы применять более продвинутые фильтры к своим метрикам. Например, для фильтрации метрики узла Kubernetes для определенного кластера Kubernetes.

Включить расширенный режим

Вы можете начать создавать простой запрос через веб-интерфейс, а затем включить расширенный режим, чтобы просмотреть базовый запрос.

Например, если вы начнете выполнение этого запроса с выключенным расширенным режимом:

Image12уйыа.png

При включенном расширенным режимом:

Расширенный режим.png

Базовый код запроса отображается в том виде, в котором он передается в Metrics API v2:

builtin:host.cpu.usage:splitBy("dt.entity.host"):avg:auto:sort(value(avg,descending)):limit(20)

Отключение расширенного режима

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

  • Разделить по измерениям метрики (если вы не добавили никаких дополнительных измерений с помощью селектора объектов в расширенном режиме)
  • Фильтровать, подключенный через связь OR
  • Сортировать по
  • Ограничение

Подробное описание отдельных преобразований см. в разделе Селекторы метрик.

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

Например, если вы изначально применили преобразование сортировки при выключенном расширенном режиме, вы можете изменить порядок сортировки с ascending на descending при включенном расширенном режиме, а затем снова отключить расширенный режим. Однако после добавления новых частей в запрос — например, путем добавления преобразований, таких как сдвиг времени или выражения метрик, которые пока невозможны при выключенном расширенном режиме, — вы не сможете снова отключить расширенный режим и продолжить работу.

Редактирование запроса

Основные функции редактора запросов одинаковы независимо от того, включен или выключен расширенный режим:

  • Чтобы добавить показатель, выберите Добавить метрику, чтобы добавить строку (другую метрику) в запрос.
  • Чтобы дублировать метрику, выберите Дополнительно (...) > Дублировать, чтобы дублировать эту строку (метрику).
  • Чтобы удалить метрику, выберите Дополнительно (...) > Удалить, чтобы удалить эту строку (метрику).
  • Чтобы изменить порядок показателей, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть внесенные изменения. Image8з.png Порядок, в котором показатели перечислены в вашем запросе, влияет на следующее:
    • Порядок отображения элементов визуализации: показатели запроса отображаются в порядке сверху вниз, поэтому последний из них отображается поверх остальных
    • Порядок столбцов в визуализации таблицы
    • Порядок отображения настроек на панели "Настройки"
  • Чтобы попробовать выполнить запрос, нажмите Запуск запроса. Текст рядом с кнопкой Запуск запроса отображает состояние последнего запуска.

Основное отличие заключается в способе редактирования запроса и количестве доступных возможностей:

  • При отключенном расширенном режиме веб-интерфейс упрощает создание запроса из пунктов меню, но возможности запроса ограничены
  • При включенном расширенном режиме возможности запроса намного шире, но вам нужно знать, как редактировать запрос

Добавить метрику

Самый простой способ выбрать показатели для запроса - начать с выключенного расширенного режима.

  1. Вставьте указатель в строку и начните вводить название показателя. Перечислены соответствующие показатели. Например, введите cpu usage, а затем выберите builtin:host.cpu.usage из списка.
    Imageссмчм.png
  2. Вы можете выбирать часто применяемые агрегированные данные, измерения и преобразования:
    • Разделить по: выберите одно из перечисленных измерений для выбранной метрики
    • Агрегировать: выберите Average, Count Maximum, Minimum Sum, Median 10-ый процентиль, 75-ый процентиль 90-ый процентиль Выбранная агрегация применяется после разделения на. Например, если вы выберете 10-ый процентиль и разделите на Host для измерительной метрики, такой как builtin:host.cpu.idle, процентиль рассчитывается на основе значений после разделения по хостам.
    • Сортировать по возрастанию или убыванию
    • Фильтровать: выбрать измерения и фильтрование атрибутов
    • Ограничение: выберите предельное значение
  3. Включите расширенный режим.
  4. Редактируйте результаты по мере необходимости.
    • Копирование и вставка из одной строки в другую
    • Добавляйте, дублируйте и удаляйте строки по мере необходимости

Как добавить метрику в расширенном режиме

  1. Вставьте указатель в строку и начните вводить ключ показателя. Перечислены соответствующие показатели. Например, введите host.cpu, а затем выберите builtin:host.cpu.usage из списка. Image1ауф.png
  2. Вам необходимо добавить все преобразования вручную.

Редактирование метрик

В окне редактирования:

  • Введите двоеточие (:), чтобы указать, что можно добавить в точке вставки, а затем выберите из списка.
  • Нажмите Shift-Enter, чтобы принудительно ввести новую строку. Это может быть полезно для удобства чтения и не влияет на оценку запроса.
  • Выберите показатель или число и нажмите ( на клавиатуре, чтобы заключить выделенное значение в круглые скобки.

Подробнее о показателях

  • Обзор показателей см. в разделе Метрики.
  • Чтобы ознакомиться со списком встроенных метрик, см. раздел Встроенные метрики.
  • Чтобы узнать о внедрении пользовательских метрик в АппОптима, см. раздел Пользовательские метрики.
  • Используйте раздел в АппОптима Метрики для:
    • Проверки сведений о метриках
    • Открытия выбранной метрики в редакторе через кнопку Создать график

Операнды

Операнд - это метрика или число.

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

Выражения

Выражения метрик позволяют применять простые арифметические операции к операндам (метрикам или числам).

Например, это выражение вычисляет соотношение (в процентах) двух показателей:

((metric1)/(metric2))*(100)

Основываясь на приведенном выше примере, у нас есть следующие основные компоненты для работы:

  • Операнд: метрика или число
  • Круглые скобки: ()
  • Арифметические операторы: +, -, *, /
  • Отрицание: -()

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

Пример: delta

Узнайте, как:

  • Создать метрику в расширенном режиме
  • Использовать delta

В этом примере показано, как преобразовать метрику калибровки в метрику дельта-подсчета.

  1. При включенном расширенном режиме мы собрали следующий измерительный показатель: builtin:cloud.kubernetes.pod.containerRestarts:splitBy() выбрав следующую серию вариантов из предложенных в редакторе: Выберите метрику: вводите часть ключа метрики, пока не увидите метрику, которую хотите выбрать. 7.png Выберите splitBy: Введите двоеточие (:), за которым следует строка неполного поиска того, что вы хотите добавить (в данном случае, splitBy), затем выберите это из списка. 8.png Промежуточное состояние: 9.png builtin:cloud.kubernetes.pod.containerRestarts:splitBy()
  2. Но мы решили, что хотим отобразить это как показатель дельта-подсчета. Выберите avg: введите двоеточие (:), за которым следует строка неполного поиска для avg, затем выберите его из списка. 10.png Выберите delta: введите двоеточие (:), за которым следует строка неполного поиска для delta, затем выберите ее из списка. 11.png Конечное состояние: 12.png builtin:cloud.kubernetes.pod.containerRestarts:splitBy():avg:delta
  3. Запустите запрос.

Пример: Вычисление частоты ошибок

Узнайте, как:

  • Объединить две строки в одну с помощью метрического выражения
  • Выполнить простой расчет

В этом примере мы хотим отобразить частоту ошибок для страницы конверсии. Мы можем начать с этих показателей:

  • Количество действий (builtin:apps.web.action.count.load.browser)
  • Количество ошибок (builtin:apps.web.action.countOfErrors)

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

Мы можем создать этот запрос практически без ввода текста.

  1. Если Расширенный режим отключен, выберите показатели, агрегации и фильтры. 13.png
  2. При включенном расширенном режиме просматривайте код запроса. 15.png
  3. Скопируйте и вставьте содержимое поля редактирования 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))
  4. Результат должен быть примерно таким: 16.png
  5. Запустите запрос.

Теперь вы можете добавлять пороговые значения и закреплять запрос на панели мониторинга.

Пример: Сравнение показателя с предыдущим таймфреймом

Узнайте, как добавить контекст к вашим визуализациям, таким как линейные диаграммы, чтобы ответить на вопрос: "Что считается нормальным?"

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

В этом примере мы узнаем, как дублировать вашу метрику, а затем применить :timeshift преобразование для добавления контекста к вашим линейным диаграммам. Начнем с builtin:apps.web.largestContentfulPaint.load.browserвстроенной метрики Core web vital, которая дает вам максимально точные показатели paint для всех действий при загрузке всех ваших веб-приложений.

Мы можем создать этот запрос практически без ввода текста.

  1. Если Расширенный режим отключен, выберите метрику и настройте значения.
  2. Продублируйте показатель, выбрав Дополнительно (...) > Дублировать для этой строки.
  3. Включите расширенный режим для просмотра кода запроса.
  4. Добавьте сдвиг по времени (-1 w) в конце второго запроса (B).
  5. Запустите запрос.

Окончательный код запроса для 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))")))