- другую панель мониторинга — для сфокусированного представления одного элемента, например панель мониторинга с деталями по сервису, или
- к исходным событиям в Search — к журналам или трассировкам, стоящим за этой строкой.
Изучение сервиса на отдельной панели мониторинга
Service Detail.
1
Создайте детальную панель мониторинга
Создайте панель мониторинга с именемService Detail и добавьте пользовательский фильтр с выражением ServiceName для вашего источника трасс. Фильтр на уровне панели мониторинга ограничивает каждую плитку одним сервисом, поэтому в запросах самих плиток не нужно жёстко указывать сервис. Добавьте нужные представления по сервису: ключевые показатели RED (requests, errors, P95 duration), график процентилей latency (P50, P95, P99), частоту запросов во времени и разбивку по конечным точкам с группировкой по SpanName.Сначала сохраните эту панель мониторинга, чтобы на следующем шаге можно было выбрать её как целевую.2
Создайте инвентаризацию сервисов
На обзорной панели мониторинга добавьте плитку Table для вашего источника трасс с группировкой поServiceName. Добавьте в него столбцы RED для оценки каждого сервиса; каждый столбец должен быть серией с псевдонимом:Requests: количество спанов (rate).Errors: количество спанов со статусом ошибки.P95 Duration: 95-й процентильDuration. Установите для числового формата этого столбца отображение длительности, чтобы значение выглядело как288ms, а не как необработанные наносекунды.
Requests по убыванию, чтобы самые загруженные сервисы были вверху. Эта таблица — каталог: одна строка на сервис с оценкой по RED.3
Настройте действие по щелчку на строке
В таблице инвентаризации откройте Row Click Action, выберите Dashboard и укажитеService Detail в списке панелей мониторинга. Если выбрать панель мониторинга напрямую, она будет привязана по ID. Ссылка продолжит работать, даже если панель мониторинга позже будет переименована, и сохранится при экспорте и импорте панели мониторинга. (Вариант Template используйте, если для каждой строки нужно выбирать отдельную панель мониторинга; см. Настройка действия по щелчку строки.)Поскольку в Service Detail объявлен пользовательский фильтр ServiceName, в выдвижной панели автоматически появляется пустой фильтр для этого выражения. Заполните его шаблон:- Expression:
ServiceName(уже заполнено) - Template:
{{ServiceName}}
ServiceName этой панели мониторинга.4
Щёлкните по строке
При наведении на строку у правого края таблицы появляется ссылка с подсказкой, описывающей действие (Open dashboard "Service Detail"). Щелчок по строке открывает панель мониторинга Service Detail, где фильтр Service установлен в значение выбранной строки, поэтому все плитки (ключевые показатели RED, процентиль latency, разбивка по конечным точкам) сразу ограничиваются этим сервисом.Переход от сервиса к его трассировкам
1
Направьте переход по строке в Search
В таблице инвентаризации откройте Row Click Action и выберите Search. Выберите источник трассировок (в списке отображаются только источники журналов и трассировок). Добавьте один фильтр:- Expression:
ServiceName - Template:
{{ServiceName}}
2
Нажмите на строку
Теперь при нажатии на строку сервиса открывается страница Search для этого источника трассировок, отфильтрованная поServiceName = <service>, и вы сразу попадаете на спаны только этого сервиса в том же временном диапазоне.SpanName) или по атрибуту конечной точки вместо ServiceName, подставьте фильтр из этого столбца — и каждый переход по строке будет открывать события для этой конкретной операции или конечной точки. Для group-by по map-атрибуту см. примечание об alias в разделе Проверка и ограничения.
Настройка действия по щелчку на строке
Row Click Action: Default, Row Click Action: Search или Row Click Action: Dashboard. Нажмите ее, чтобы открыть выдвижную панель.
Выдвижная панель предлагает три действия:
- Default: встроенное поведение. Щелчок по строке открывает страницу Search с фильтрацией по значениям столбцов группировки этой строки и выбранному временному диапазону. Именно это поведение используется, если пользовательское действие не задано.
- Search: переход на страницу Search для выбранного вами источника.
- Dashboard: переход на другую панель мониторинга вашей команды.
- Destination: выберите конкретный источник или панель мониторинга либо выберите Template и введите шаблон Handlebars, который будет сопоставлен по имени с доступным источником или панелью мониторинга. При выборе конкретной цели она закрепляется по ID. Этот вариант предпочтителен для одного фиксированного пункта назначения: он сохраняет привязку после переименования, а также после экспорта и импорта панели мониторинга; кроме того, для панели мониторинга он заранее заполняет объявленные фильтры пункта назначения. Используйте Template, если цель должна различаться для каждой строки: в этом случае для выбора можно ссылаться на столбец строки (например,
Errors-{{ServiceName}}). - Filters: нажмите Add filter и укажите Expression (столбец или выражение в пункте назначения, например
ServiceName) и Template для его значения (например{{ServiceName}}). Шаблоны ссылаются на столбцы строки, по которой щелкнули, через{{columnName}}(см. примечание ниже о том, какие столбцы доступны). Каждый фильтр преобразуется в условиеexpression IN (value)в пункте назначения, а фильтры с одинаковым выражением объединяются. Если пунктом назначения является панель мониторинга, выдвижная панель заранее добавляет по одному пустому фильтру для каждого фильтра, уже объявленного в этой панели мониторинга, так что вам остается только заполнить шаблоны. - WHERE (необязательно): шаблон Handlebars, который преобразуется в глобальный фильтр пункта назначения в дополнение к условиям отдельных фильтров выше. Задайте для него язык запросов SQL или Lucene, чтобы пункт назначения мог его разобрать. Например, SQL-шаблон
ServiceName = '{{ServiceName}}'ограничивает пункт назначения сервисом из строки, по которой щелкнули.
Шаблоны ссылаются на столбцы таблицыШаблон
{{...}} разрешается по собственным столбцам плитки таблицы: столбцам группировки и каждой серии по ее имени или псевдониму — ровно в том виде, в каком они показаны в таблице. Он не видит столбцы базового источника, которые таблица не выбирает. Чтобы значение передавалось по щелчку, оно должно быть столбцом в таблице, поэтому {{ServiceName}} работает, потому что ServiceName — это столбец группировки таблицы, а для столбца с псевдонимом используется его псевдоним. Если сослаться на имя, которого нет в таблице, щелчок завершится ошибкой Row has no column '<name>'.Как определяются пункт назначения и фильтры
- Пункт назначения. При выборе конкретного источника или панели мониторинга он фиксируется по ID. Цель Template формируется на основе выбранной строки, а затем сопоставляется по имени с источниками или панелями мониторинга вашей команды. Чтобы сопоставление сработало, имя должно быть уникальным: если у двух источников или двух панелей мониторинга получается одно и то же имя, link нельзя будет однозначно сопоставить с одним из них. Если сформированное имя пустое или для него нет совпадения, сопоставление также не выполняется.
- Фильтры. Каждый шаблон фильтра формируется на основе строки и превращается в условие
expression IN (value)в пункте назначения. ДействиеSearchоткрывает/searchв контексте выбранного источника, а действиеDashboardоткрывает соответствующую панель мониторинга. В обоих случаях сохраняется временной диапазон выбранной строки.
Для целей панели мониторинга нужен объявленный соответствующий фильтрФильтр, переданный в панель мониторинга, применяется только в том случае, если в панели мониторинга пункта назначения объявлен верхнеуровневый пользовательский фильтр, выражение которого совпадает с Expression фильтра. Если ни один из объявленных фильтров не совпадает, это значение отбрасывается в момент нажатия, и пункт назначения открывается без фильтрации по этому выражению. Поэтому в режиме панели мониторинга заранее подставляются объявленные фильтры пункта назначения: если выражение совпадает, раскрывающийся список пункта назначения автоматически заполняется значением из выбранной строки.
Проверка и ограничения
- Только плитки таблиц. Кнопка Row Click Action отображается только у плиток таблиц — как у таблицы в конструкторе диаграмм, так и у таблицы на основе SQL. У плиток других типов действия по щелчку на строке нет.
- Целями поиска должны быть источники журналов или трассировок. Источники метрик и сеансов не предлагаются, поскольку их нельзя просматривать на странице поиска.
- Имена шаблонов должны быть уникальными. Цель шаблона определяется по имени, поэтому нельзя использовать как цель шаблона два источника или две панели мониторинга с одинаковым именем.
- Для целей панели мониторинга должен быть объявлен соответствующий фильтр, чтобы передаваемое значение применилось (см. примечание выше).
- Столбцам Group By для выражений нужен псевдоним. Группировка по выражению, например по атрибуту map
SpanAttributes['http.route'], создаёт результирующий столбец, имя которого совпадает с самим необработанным выражением, и на него неудобно ссылаться в шаблоне. Задайте столбцу псевдоним в конструкторе диаграмм: добавьтеAS <alias>после выражения в поле Group By (например,SpanAttributes['http.route'] AS Route), а затем используйте{{Route}}в шаблоне. Агрегированные серии аналогичным образом получают псевдоним из поля Alias. Группировка по обычному столбцу, напримерServiceName, уже имеет понятное имя и не требует псевдонима.