Строка 45: | Строка 45: | ||
* Чтобы продублировать метрику, выберите '''Дополнительно ( … ) > Дублировать''' , чтобы продублировать эту строку (метрику). | * Чтобы продублировать метрику, выберите '''Дополнительно ( … ) > Дублировать''' , чтобы продублировать эту строку (метрику). | ||
* Чтобы удалить метрику, выберите '''Дополнительно ( … ) >''' '''Удалить''' в строке, чтобы удалить эту строку (метрику). | * Чтобы удалить метрику, выберите '''Дополнительно ( … ) >''' '''Удалить''' в строке, чтобы удалить эту строку (метрику). | ||
* Чтобы изменить порядок метрик, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть изменения. [[Файл:Image8з.png|граница]] | * Чтобы изменить порядок метрик, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть изменения. [[Файл:Image8з.png|граница]] <br />Порядок, в котором метрики перечислены в вашем запросе, влияет на следующее: | ||
** Порядок, в котором отображаются элементы рисунка: метрики запроса отображаются сверху вниз, поэтому последняя отображается поверх остальных. | ** Порядок, в котором отображаются элементы рисунка: метрики запроса отображаются сверху вниз, поэтому последняя отображается поверх остальных. | ||
** Порядок столбцов в визуализации таблицы | ** Порядок столбцов в визуализации таблицы | ||
Строка 59: | Строка 59: | ||
Самый простой способ выбрать метрики для запроса — начать с выключенного '''расширенного режима'''. | Самый простой способ выбрать метрики для запроса — начать с выключенного '''расширенного режима'''. | ||
# Наведите указатель/курсор в строку и начните вводить название метрики. Соответствующие метрики перечислены. Например, введите <code>cpu usage</code> и выберите <code>builtin:host.cpu.usage</code>из списка. | # Наведите указатель/курсор в строку и начните вводить название метрики. Соответствующие метрики перечислены. Например, введите <code>cpu usage</code> и выберите <code>builtin:host.cpu.usage</code>из списка. <br />[[Файл:Imageссмчм.png|граница]] | ||
# Вы можете выбрать часто применяемые агрегации, измерения и преобразования: | # Вы можете выбрать часто применяемые агрегации, измерения и преобразования: | ||
#* Разделить по: выбрать один из перечисленных параметров для выбранной метрики | #* Разделить по: выбрать один из перечисленных параметров для выбранной метрики | ||
Строка 125: | Строка 125: | ||
# При включенном '''расширенном режиме''' мы собрали следующую метрику , <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> | # При включенном '''расширенном режиме''' мы собрали следующую метрику , <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|граница]] '''Выберите дельту''': введите двоеточие (<code>:</code>), а затем часть строки поиска для <code>delta</code>, затем выберите ее из списка. [[Файл:11.png|граница]] '''Конечное состояние:''' [[Файл:12.png|граница]] <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy():avg:delta</code> | # Но мы решили, что хотим отобразить это как показатель дельта-счета. '''Выберите avg (Среднее)''': введите двоеточие (<code>:</code>), а затем часть строки поиска для <code>avg</code>, затем выберите его из списка. [[Файл:10.png|граница]] '''Выберите дельту''': введите двоеточие (<code>:</code>), а затем часть строки поиска для <code>delta</code>, затем выберите ее из списка. [[Файл:11.png|граница]] '''Конечное состояние:''' [[Файл:12.png|граница]] <code>builtin:cloud.kubernetes.pod.containerRestarts:splitBy():avg:delta</code> | ||
# | # Нажмите на кнопку '''Запуск запроса'''. | ||
== Пример: рассчитать частоту ошибок == | == Пример: рассчитать частоту ошибок == | ||
Строка 144: | Строка 144: | ||
# При отключенном '''расширенном режиме''' выберите метрики, агрегации и фильтры. [[Файл:13.png|граница]] | # При отключенном '''расширенном режиме''' выберите метрики, агрегации и фильтры. [[Файл:13.png|граница]] | ||
# Включив '''расширенный режим''', просмотрите код запроса. [[Файл:15.png|граница]] | # Включив '''расширенный режим''', просмотрите код запроса. [[Файл:15.png|граница]] | ||
# Скопируйте и вставьте содержимое поля редактирования '''B''' в поле редактирования '''A''' , объединив два запроса с добавлением скобок и знака деления, а затем удалите '''B'''. | # Скопируйте и вставьте содержимое поля редактирования '''B''' в поле редактирования '''A''' , объединив два запроса с добавлением скобок и знака деления, а затем удалите '''B'''. <br />Если '''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> <br />а '''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> <br />мы хотим разделить <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> <br /><code>/</code> <br /><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|граница]] | # Результат должен быть примерно таким: [[Файл:16.png|граница]] | ||
# Нажмите на кнопку '''Запуск запроса'''. | # Нажмите на кнопку '''Запуск запроса'''. |
Версия от 07:48, 30 июля 2024
(API Кластера v2)
Чтобы в полной мере использовать возможности запросов 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)
Отключить расширенный режим
Для простых запросов, где вам необходимо одно из следующих преобразований, вы можете снова отключить расширенный режим:
- Разделить по измерениям метрики (если вы не добавили никаких дополнительных измерений через селектор сущностей в расширенном режиме)
- Фильтровать , по принципу действия ИЛИ
- Сортировать по
- Ограничение
Подробное описание отдельных преобразований см. в разделе Селектор показателей.
Отключение расширенного режима возможно только в том случае, если преобразования, отредактированные в расширенном режиме, были добавлены, когда расширенный режим был выключен.
Например, если вы изначально применили преобразование сортировки с выключенным расширенным режимом, вы можете изменить порядок сортировки с ascending
на descending
с включенным расширенным режимом, а затем снова выключить расширенный режим. Однако после добавления новых частей в запрос — например, путем добавления преобразований, таких как сдвиг во времени или метрические выражения, которые пока невозможны при выключенном расширенном режиме — вы не сможете снова выключить расширенный режим и продолжить работу.
Редактировать запрос
Основные функции редактора запросов одинаковы независимо от того, включен ли расширенный режим :
- Чтобы добавить метрику, нажмите кнопку Добавить метрику , чтобы добавить строку (еще одну метрику) в запрос.
- Чтобы продублировать метрику, выберите Дополнительно ( … ) > Дублировать , чтобы продублировать эту строку (метрику).
- Чтобы удалить метрику, выберите Дополнительно ( … ) > Удалить в строке, чтобы удалить эту строку (метрику).
- Чтобы изменить порядок метрик, выберите и перетащите метрику на новую позицию в списке метрик. Повторно запустите запрос, чтобы увидеть изменения.
Порядок, в котором метрики перечислены в вашем запросе, влияет на следующее:- Порядок, в котором отображаются элементы рисунка: метрики запроса отображаются сверху вниз, поэтому последняя отображается поверх остальных.
- Порядок столбцов в визуализации таблицы
- Порядок отображения настроек на панели настроек
- Чтобы посмотреть на запрос, нажмите на кнопку Запуск запроса. Текст рядом с кнопкой Запуск запроса отображает статус последнего запуска.
Основное отличие заключается в способе редактирования запроса и количестве доступных вариантов:
- При отключенном расширенном режиме веб-интерфейс упрощает создание запроса с помощью пунктов меню, но возможности запроса ограничены.
- При включенном расширенном режиме возможности запроса значительно шире, но вам нужно знать, как редактировать запрос.
Добавить метрику
Самый простой способ выбрать метрики для запроса — начать с выключенного расширенного режима.
- Наведите указатель/курсор в строку и начните вводить название метрики. Соответствующие метрики перечислены. Например, введите
cpu usage
и выберитеbuiltin:host.cpu.usage
из списка. - Вы можете выбрать часто применяемые агрегации, измерения и преобразования:
- Разделить по: выбрать один из перечисленных параметров для выбранной метрики
- Агрегат: выберите
Average
,Count
,Maximum
,Minimum
,Sum
,Median
,Percentile 10th
,Percentile 75th
илиPercentile 90th
. Выбранная агрегация применяется после Разделить по. Например, если вы выбираетеPercentile 10th
и Разделить поHost
для метрики калибра, такой какbuiltin:host.cpu.idle
, процентиль рассчитывается по значениям после Разделить по хосту. - Сортировать по: выберите по возрастанию или по убыванию
- Фильтровать: выберите размеры и атрибуты фильтра
- Ограничение: выберите предельное значение
- Включите расширенный режим.
- При необходимости отредактируйте результаты.
- Копируйте и вставляйте из одной строки в другую
- Добавляйте, дублируйте и удаляйте строки по мере необходимости.
Чтобы добавить метрику в расширенном режиме
- Наведите указатель/курсор в строку и начните вводить ключ метрики. Соответствующие метрики перечислены. Например, введите
host.cpu
и затем выберитеbuiltin:host.cpu.usage
из списка. - Все преобразования необходимо добавлять вручную.
Изменить метрику
В поле редактирования:
- Введите двоеточие (
:
), чтобы увидеть, что можно добавить в этой точке вставки, а затем выберите из списка. - Нажмите Shift-Enter, чтобы принудительно перейти на новую строку. Это может быть полезно для удобства чтения и не влияет на оценку запроса.
- Выберите показатель или число и нажмите ( на клавиатуре, чтобы заключить выбранное значение в скобки.
Подробнее о метриках
- Обзор метрик см. в разделе Метрики.
- Чтобы просмотреть список встроенных метрик, см. Встроенные метрики.
- Чтобы узнать о добавлении пользовательских метрик в Ключ-АСТРОМ, см. раздел Расширение наблюдаемости метрик.
- Используйте Обзор метрик для:
- Проверки метрических данных
- Открытие выбранной метрики в Визуализации метрик
Операнды
Операнд — это метрика или число.
- Каждый операнд должен быть заключен в скобки
()
. Вы также можете использовать скобки для обеспечения приоритета. - Все метрики, включающие в себя более одной точки данных, должны иметь одинаковое разрешение.
- В качестве операнда можно использовать любую метрику, включая метрики, измененные любым селектором метрик, а также можно применять преобразования к результату выражения.
Выражения
Метрические выражения позволяют применять простые арифметические операции к операндам (метрикам или числам).
Например, это выражение вычисляет соотношение (в процентах) двух метрик:
((metric1)/(metric2))*(100)
Основываясь на приведенном выше примере, у нас есть следующие основные компоненты для работы:
- Операнд: метрика или число
- Круглые скобки:
()
- Арифметические операторы:
+
,-
,*
,/
- Отрицание:
-()
Арифметические операции используют точки данных кортежей (уникальные комбинации метрика—измерение—значение измерения) метрик. Идентичные кортежи каждой метрики объединяются в пары, а затем их точки данных выравниваются. Подробности см. в Выражение метрик.
Пример: дельта
Узнайте, как:
- Создать метрику в расширенном режиме
- Использовать дельту
В этом примере показано, как преобразовать метрику калибровки в метрику дельта-счетчика.
- При включенном расширенном режиме мы собрали следующую метрику ,
builtin:cloud.kubernetes.pod.containerRestarts:splitBy()
выполнив следующую серию выборов из вариантов, предлагаемых в редакторе: Выберите метрику: вводите часть ключа метрики, пока не увидите метрику, которую хотите выбрать. Выберите splitBy (Разделить по): введите двоеточие (:
), а затем часть строки поиска того, что вы хотите добавить (в данном случаеsplitBy
), затем выберите его из списка. Промежуточное состояние:builtin:cloud.kubernetes.pod.containerRestarts:splitBy()
- Но мы решили, что хотим отобразить это как показатель дельта-счета. Выберите avg (Среднее): введите двоеточие (
:
), а затем часть строки поиска дляavg
, затем выберите его из списка. Выберите дельту: введите двоеточие (:
), а затем часть строки поиска для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 vitals , которая обеспечивает самые большие измерения отрисовки контента для всех действий по загрузке для всех ваших веб-приложений.
Мы можем создать этот запрос, практически ничего не добавляя
- При отключенном расширенном режиме выберите метрику, разделения, агрегации и фильтры.
- Дублируйте метрику, выбрав Дополнительно ( … ) > Дублировать для этой строки.
- Включите расширенный режим , чтобы просмотреть код запроса.
- Добавьте сдвиг по времени (-1w) в конце второго (B) запроса.
- Нажмите на кнопку Запуск запроса.
Окончательный код запроса для 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))")))