Перейти к основному содержанию
Табличная плитка часто представляет собой каталог: одна строка на каждый сервис, хост, конечную точку или группу ошибок, с несколькими столбцами, которые дают оценку каждому из них. Действия при щелчке по строке превращают этот каталог в сценарий исследования. Вы просматриваете каталог, чтобы найти нужную строку, щёлкаете по ней, и ClickStack подставляет значения выбранной строки в качестве фильтров. После этого пункт назначения открывается уже с фильтрацией по этому элементу — без необходимости вручную заново собирать запрос. Щелчок может привести в одно из двух мест:
  • другую панель мониторинга — для сфокусированного представления одного элемента, например панель мониторинга с деталями по сервису, или
  • к исходным событиям в 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.
Ставьте столбец группировки первымПо умолчанию таблица отображает столбец группировки (здесь ServiceName) справа, после серий. Каталог читается лучше, когда идентификатор строки идёт первым. Откройте Display Settings плитки и включите Display Group By Columns on Left, чтобы переместить столбец группировки в начало.
3

Настройте действие по щелчку на строке

В таблице инвентаризации откройте Row Click Action, выберите Dashboard и укажите Service Detail в списке панелей мониторинга. Если выбрать панель мониторинга напрямую, она будет привязана по ID. Ссылка продолжит работать, даже если панель мониторинга позже будет переименована, и сохранится при экспорте и импорте панели мониторинга. (Вариант Template используйте, если для каждой строки нужно выбирать отдельную панель мониторинга; см. Настройка действия по щелчку строки.)Поскольку в Service Detail объявлен пользовательский фильтр ServiceName, в выдвижной панели автоматически появляется пустой фильтр для этого выражения. Заполните его шаблон:
  • Expression: ServiceName (уже заполнено)
  • Template: {{ServiceName}}
Нажмите Apply и сохраните. Теперь сервис из выбранной строки будет передаваться в фильтр ServiceName этой панели мониторинга.
4

Щёлкните по строке

При наведении на строку у правого края таблицы появляется ссылка с подсказкой, описывающей действие (Open dashboard "Service Detail"). Щелчок по строке открывает панель мониторинга Service Detail, где фильтр Service установлен в значение выбранной строки, поэтому все плитки (ключевые показатели RED, процентиль latency, разбивка по конечным точкам) сразу ограничиваются этим сервисом.

Переход от сервиса к его трассировкам

Иногда нужен не очередной агрегированный вид, а сами исходные события. Действие Search направляет переход на страницу Search вместо панели мониторинга и открывает журналы или трассировки, связанные с этой строкой, уже с применённым к ней фильтром. В той же таблице инвентаризации сервисов настройте переход по строке так, чтобы он вел сразу к трассировкам, а не на панель мониторинга с подробностями.
1
В таблице инвентаризации откройте Row Click Action и выберите Search. Выберите источник трассировок (в списке отображаются только источники журналов и трассировок). Добавьте один фильтр:
  • Expression: ServiceName
  • Template: {{ServiceName}}
Нажмите Apply и сохраните изменения.
2

Нажмите на строку

Теперь при нажатии на строку сервиса открывается страница Search для этого источника трассировок, отфильтрованная по ServiceName = <service>, и вы сразу попадаете на спаны только этого сервиса в том же временном диапазоне.
Та же схема работает для любого каталога объектов. Сгруппируйте таблицу по операции (SpanName) или по атрибуту конечной точки вместо ServiceName, подставьте фильтр из этого столбца — и каждый переход по строке будет открывать события для этой конкретной операции или конечной точки. Для group-by по map-атрибуту см. примечание об alias в разделе Проверка и ограничения.

Настройка действия по щелчку на строке

Действия по щелчку на строке настраиваются прямо в плитке таблицы; отдельной страницы для них нет. Добавьте плитку или измените существующую и задайте для нее тип визуализации Table. После этого на панели инструментов редактора рядом с Display Settings появится кнопка Row Click Action. Она показывается только для плиток таблиц, а ее метка отражает текущее действие: Row Click Action: Default, Row Click Action: Search или Row Click Action: Dashboard. Нажмите ее, чтобы открыть выдвижную панель. Выдвижная панель предлагает три действия:
  • Default: встроенное поведение. Щелчок по строке открывает страницу Search с фильтрацией по значениям столбцов группировки этой строки и выбранному временному диапазону. Именно это поведение используется, если пользовательское действие не задано.
  • Search: переход на страницу Search для выбранного вами источника.
  • Dashboard: переход на другую панель мониторинга вашей команды.
Для 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>'.
Нажмите Apply, чтобы проверить шаблоны (ClickStack сообщит о шаблонах с недопустимым синтаксисом), затем сохраните панель мониторинга, чтобы сохранить это действие.

Как определяются пункт назначения и фильтры

Когда пользователь нажимает на строку, ClickStack определяет действие для этой строки:
  • Пункт назначения. При выборе конкретного источника или панели мониторинга он фиксируется по 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, уже имеет понятное имя и не требует псевдонима.
Последнее изменение 12 июня 2026 г.