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

Расширенный режим Визуализации метрик

Материал из Документация АппОптима

Применение АппОптима / Наблюдайте и исследуйте / Визуализация метрик / Расширенный режим Визуализации метрик

(API Кластера v2)

Чтобы в полной мере использовать возможности запросов 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изменить метрику

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

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

Подробнее о метриках

Операнды

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

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

Выражения

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

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

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

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

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

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

Пример: дельта

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

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

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

  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, затем выберите ее из списка. 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 vitals , которая обеспечивает самые большие измерения отрисовки контента для всех действий по загрузке для всех ваших веб-приложений.

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

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

Окончательный код запроса для A и B должен выглядеть примерно так (в зависимости от вашего выбора на шаге 1):

А без сдвига во времени:

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 и заданный идентификатор объекта.

Окончательный запрос выглядит так:

(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))")))