Перейти к основному содержимому
Перейти к основному содержимому

Event deltas в ClickStack

Event deltas сочетает тепловую карту задержек с автоматическим анализом атрибутов, чтобы вы могли видеть структуру данных своего трейса и понимать, чем отличаются медленные спаны, — без написания запросов. Есть три способа его использовать:

  • Режим распределения (всегда включён) — когда на тепловой карте нет выделения, для текущего набора спанов показывается распределение значений каждого атрибута. Полезно для выявления доминирующих или необычно редких значений (выбросов по кардинальности).
  • Режим сравнения — перетащите прямоугольник на тепловой карте, чтобы сравнить спаны внутри него (Selection) со всеми спанами снаружи (Background). Полезно для выделения отклонений.
  • Последовательная детализация — нажмите на любой столбец, чтобы отфильтровать по этому значению (или исключить его). Тепловая карта перестраивается для отфильтрованного набора, поэтому вы можете продолжать сужать выборку, пока причина не станет очевидной.
Обзор Event deltas

Предварительные требования

Для Event deltas требуется источник данных Трейс с выражением длительности. Подойдет любой сервис с инструментированием OpenTelemetry, который генерирует данные спанов. Функция доступна во всех развертываниях ClickStack (Managed, Open Source, ClickHouse Cloud).

Начало работы

  1. В раскрывающемся списке Источник данных выберите источник, в котором есть трейсы. Названия источников произвольны — важно, чтобы для источника был задан тип трейса. Вкладка Event Deltas доступна только для таких источников.
  2. В разделе Режим анализа нажмите вкладку Event Deltas.

Event deltas — это отдельный режим анализа наряду с Таблицей результатов и Шаблонами событий: при переключении на него отображаются тепловая карта и сетка анализа атрибутов, при этом ваши поисковые фильтры и временной диапазон сохраняются, и вы можете в любой момент переключиться обратно.

Тепловая карта

Тепловая карта отображает спаны в двух измерениях:

  • Ось X — время
  • Ось Y — числовое значение; по умолчанию это длительность спана в миллисекундах (логарифмическая шкала)

Интенсивность цвета показывает количество событий в бакете: чем ярче, тем больше спанов.

По тепловой карте можно сразу увидеть закономерности: бимодальное распределение задержки, всплески задержки в определённые моменты времени или полосу стабильно медленных спанов. Чтобы исследовать область, нажмите и протяните на ней прямоугольник — он станет вашей Selection и переведёт анализ ниже в режим сравнения.

Режим распределения: аномалии кардинальности

Если на тепловой карте ничего не выбрано, панель анализа показывает по одной столбчатой диаграмме для каждого атрибута, построенной по всем подходящим спанам. В легенде указано Все спаны.

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

Атрибуты ранжируются по степени концентрации значений: те, в которых преобладают несколько значений, показываются первыми; однородные атрибуты с высокой энтропией получают более низкий приоритет.

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

  • Пики — какие сервисы, конечные точки, коды состояния или хосты преобладают в вашей совокупности спанов? Часто это помогает выявить одного арендатора, версию или маршрут, на которые приходится основная часть трафика.
  • Редкие значения — значения, которые встречаются, но редко. Код состояния, который появляется лишь в 0.5% спанов, или хост, который почти не встречается, могут оказаться самым интересным сигналом — именно в длинном хвосте скрываются регрессии и вредоносная активность.

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

Режим сравнения: отклонения от нормы

Щёлкните и протяните прямоугольник на тепловой карте, затем нажмите Filter by Selection, чтобы перейти в режим сравнения. Выбранные спаны становятся Selection (красные столбцы); всё, что вне выделения, становится Background (зелёные столбцы). После этого каждая диаграмма атрибутов показывает обе совокупности рядом, отсортированные так, что первыми идут атрибуты с наибольшим расхождением — значение, которое встречается почти только в одной из групп (или отсутствует в одной из них), с наибольшей вероятностью указывает на источник различий.

Выделение на тепловой карте в области медленного диапазона, начинающегося в определённый момент времени, со столбцами сравнения ниже

Подойдёт любой прямоугольник, но три типа выделения помогают ответить на разные вопросы:

  • Область, которая выглядит подозрительно — зона с повышенной задержкой в пределах определённого временного окна, начало заметной деградации, кластер спанов, не вписывающийся в общую картину. Используйте этот вариант, если на тепловой карте уже есть что-то визуально подозрительное.
  • Вертикальное разделение по всей ширине (медленные vs быстрые) — протяните прямоугольник, охватывающий весь временной диапазон, но только верхнюю полосу задержки (медленный хвост), оставив основную массу быстрых спанов в качестве Background. Это позволяет сравнить, чем медленные спаны отличаются от быстрых.
  • Горизонтальное разделение по всей высоте (до vs после) — протяните прямоугольник, охватывающий всю ось задержки, но только временное окно после предполагаемого изменения, оставив более ранний период в качестве Background. Это позволяет сравнить, что изменилось между двумя временными окнами, независимо от задержки.

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

Итеративная детализация

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

  • Фильтр — оставить только спаны с этим значением
  • Исключить — убрать спаны с этим значением
  • Копировать — скопировать значение в буфер обмена
Всплывающее меню столбца с действиями фильтрации, исключения и копирования для значения, выделенного в одной выборке

После применения фильтра или исключения выделение на тепловой карте сбрасывается, тепловая карта перестраивается для новой выборки, а режим распределения продолжается уже для этого отфильтрованного набора. Следите за тем, как меняется тепловая карта: успешный фильтр заметно убирает медленную полосу или схлопывает бимодальное разделение. Повторяйте: найдите следующее подозрительное значение, отфильтруйте его, посмотрите на новую тепловую карту, посмотрите на новые распределения. Несколько итераций обычно позволяют локализовать регрессию до одного-двух атрибутов.

Примечание

Агрегированные бакеты Other (N), в которые сворачиваются низкочастотные значения, не кликабельны. Чтобы отфильтровать конкретное значение внутри такого бакета, используйте строку поиска.

Когда выборка станет достаточно небольшой, переключитесь на вкладку Таблица результатов, чтобы изучить отдельные трейсы — ваши фильтры сохранятся.

Настройка тепловой карты

Значок шестеренки в правом верхнем углу тепловой карты открывает выдвижную панель Heatmap Settings.

Выдвижная панель Heatmap Settings с полями Scale, Value и Count
ПараметрПо умолчаниюОписание
ScaleLogLog подходит для широких диапазонов задержки; Linear лучше для узких, равномерных распределений.
Value(Duration)/1e6Любое числовое выражение — например, размер ответа, скорость ошибок или пользовательский атрибут спана.
Countcount()Агрегация для цвета — переключите на avg(), sum(), p95() или выражения вроде countDistinct(field).

Нажмите Apply, чтобы обновить тепловую карту; анализ атрибутов ниже также будет обновлен.

Устранение неполадок

Вкладка Event deltas не отображается

Вкладка Event deltas в разделе Analysis Mode появляется только при выборе источника трейсов с выражением длительности. Убедитесь, что ваш источник данных настроен как источник типа трейс и содержит данные спанов с информацией о длительности.

Графики атрибутов показывают мало результатов или не показывают их вовсе

Если выборка слишком мала (меньше нескольких десятков спанов), распределения могут быть статистически нерепрезентативными. Расширьте временной диапазон или смягчите поисковые фильтры.