- другую панель мониторинга — для сфокусированного представления одного элемента, например панель мониторинга с деталями по сервису, или
- к исходным событиям в Search — к журналам или трассировкам, стоящим за этой строкой.
Изучение сервиса на отдельной панели мониторинга
Service Detail.
Создайте детальную панель мониторинга
Создайте панель мониторинга с именемService Detail и добавьте пользовательский фильтр с выражением ServiceName для вашего источника трасс. Фильтр на уровне панели мониторинга ограничивает каждую плитку одним сервисом, поэтому в запросах самих плиток не нужно жёстко указывать сервис. Добавьте нужные представления по сервису: ключевые показатели RED (requests, errors, P95 duration), график процентилей latency (P50, P95, P99), частоту запросов во времени и разбивку по конечным точкам с группировкой по SpanName.Сначала сохраните эту панель мониторинга, чтобы на следующем шаге можно было выбрать её как целевую.Создайте инвентаризацию сервисов
На обзорной панели мониторинга добавьте плитку Table для вашего источника трасс с группировкой поServiceName. Добавьте в него столбцы RED для оценки каждого сервиса; каждый столбец должен быть серией с псевдонимом:Requests: количество спанов (rate).Errors: количество спанов со статусом ошибки.P95 Duration: 95-й процентильDuration. Установите для числового формата этого столбца отображение длительности, чтобы значение выглядело как288ms, а не как необработанные наносекунды.
Requests по убыванию, чтобы самые загруженные сервисы были вверху. Эта таблица — каталог: одна строка на сервис с оценкой по RED.Настройте действие по щелчку на строке
В таблице инвентаризации откройте Row Click Action, выберите Dashboard и укажитеService Detail в списке панелей мониторинга. Если выбрать панель мониторинга напрямую, она будет привязана по ID. Ссылка продолжит работать, даже если панель мониторинга позже будет переименована, и сохранится при экспорте и импорте панели мониторинга. (Вариант Template используйте, если для каждой строки нужно выбирать отдельную панель мониторинга; см. Настройка действия по щелчку строки.)Поскольку в Service Detail объявлен пользовательский фильтр ServiceName, в выдвижной панели автоматически появляется пустой фильтр для этого выражения. Заполните его шаблон:- Expression:
ServiceName(уже заполнено) - Template:
{{ServiceName}}
ServiceName этой панели мониторинга.Щёлкните по строке
При наведении на строку у правого края таблицы появляется ссылка с подсказкой, описывающей действие (Open dashboard "Service Detail"). Щелчок по строке открывает панель мониторинга Service Detail, где фильтр Service установлен в значение выбранной строки, поэтому все плитки (ключевые показатели RED, процентиль latency, разбивка по конечным точкам) сразу ограничиваются этим сервисом.Переход от сервиса к его трассировкам
Направьте переход по строке в Search
В таблице инвентаризации откройте Row Click Action и выберите Search. Выберите источник трассировок (в списке отображаются только источники журналов и трассировок). Добавьте один фильтр:- Expression:
ServiceName - Template:
{{ServiceName}}
Нажмите на строку
Теперь при нажатии на строку сервиса открывается страница 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, уже имеет понятное имя и не требует псевдонима.