Перейти к основному содержанию
Event deltas сочетает тепловую карту задержки с автоматическим анализом атрибутов, чтобы вы могли видеть картину данных трассировки и находить, чем отличаются медленные спаны, без написания запросов. Использовать эту функцию можно тремя способами:
  • Distribution mode (always on): когда на тепловой карте нет выделения, для текущей совокупности спанов показывается распределение значений каждого атрибута. Это полезно для выявления доминирующих или необычно редких значений (аномалий по мощности).
  • Comparison mode: выделите прямоугольник на тепловой карте, чтобы сравнить спаны внутри него (Selection) со всем, что находится снаружи (Background). Это полезно для выявления отклонений.
  • Iterative drill-down: нажмите на любой столбец, чтобы отфильтровать по этому значению (или исключить его). Тепловая карта перерисуется для отфильтрованной совокупности, и вы сможете продолжать сужать выборку, пока причина не станет очевидной.
На снимке экрана выше правая граница тепловой карты находится примерно на уровне 10 мс, а не вернулась к базовому уровню 1 мс, который держался всё утро. Деградация всё ещё продолжается, так что мы наблюдаем её прямо во время инцидента.

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

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

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

  1. В раскрывающемся списке Data Source выберите источник, содержащий трассировки. Имена источников могут быть любыми; важно, чтобы источник был настроен с типом Trace. Вкладка Event Deltas включена только для таких источников.
  2. В разделе Режим анализа нажмите вкладку Event Deltas.
Event Deltas — это отдельный режим анализа наряду с Results Table и Шаблоны событий. При переключении на него представление меняется на тепловую карту и таблицу анализа атрибутов, но фильтры поиска и временной диапазон сохраняются, и вы в любой момент можете переключиться обратно.

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

Тепловая карта отображает спаны в двух измерениях:
  • Ось X: время
  • Ось Y: числовое значение; по умолчанию это длительность спана в миллисекундах (логарифмическая шкала)
Интенсивность цвета показывает количество событий в каждом интервале: чем ярче цвет, тем больше спанов. По тепловой карте можно сразу увидеть закономерности: бимодальную задержку, всплески задержки в определённые моменты времени, полосу стабильно медленных спанов или медленную полосу, которая со временем смещается вверх (ползущая регрессия). Чтобы исследовать область, нажмите и, удерживая кнопку мыши, выделите на карте прямоугольник. Он станет вашей Selection, а анализ ниже переключится в режим сравнения.

Режим распределения: выбросы по мощности

Если на тепловой карте ничего не выбрано, панель анализа показывает по одной столбчатой диаграмме для каждого атрибута, рассчитанной по всем совпадающим спанам. В легенде указано Все спаны (это видно на скриншоте обзора выше). Атрибуты ранжируются по тому, насколько сконцентрированы их значения: те, где доминируют несколько значений, показываются первыми; атрибуты с равномерным распределением и высокой энтропией получают меньший приоритет. Используйте режим распределения, если хотите понять профиль мощности своих данных:
  • Частые значения: какие сервисы, конечные точки, коды состояния или хосты доминируют в вашей совокупности спанов? Часто это помогает выявить один тенант, версию или маршрут, на которые приходится основная часть трафика.
  • Редкие значения: значения, которые встречаются, но редко. Код состояния, который появляется лишь в 0.5% спанов, или хост, который едва заметен, могут оказаться самым интересным сигналом. Именно в длинном хвосте скрываются регрессии и проблемные источники.
Комбинируйте этот режим со строкой поиска, чтобы сначала сузить совокупность (например, оставить только спаны с ошибками, только клиентские спаны или только одну конечную точку), а затем изучить распределения для этого подмножества.

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

Нажмите и, удерживая кнопку мыши, выделите прямоугольную область на тепловой карте, чтобы перейти в режим сравнения. Выбранные спаны становятся Selection (оранжевые столбцы), а всё вне выделения — Background (зелёные столбцы). Затем на каждой диаграмме атрибутов обе группы показываются рядом и сортируются так, чтобы атрибуты с наибольшим расхождением шли первыми. Значение, которое встречается почти исключительно с одной стороны или отсутствует с одной из сторон, лучше всего указывает на то, в чём различие. Форма нарисованного прямоугольника меняет вопрос, на который вы пытаетесь ответить. Две распространённые формы описаны ниже.

Сценарий использования 1: До и после регрессии

Когда тепловая карта показывает, что задержка со временем растет (медленная полоса утолщается, яркая полоса поднимается вверх или заметная точка перегиба отделяет здоровый период от деградировавшего), протяните прямоугольник от точки начала роста до правого края окна. Чтобы сделать сравнение точнее, установите нижнюю границу прямоугольника на уровне здорового базового значения, а не у нижней границы оси: так вы выделите спаны, которые в деградировавшем окне действительно медленнее обычного, и не захватите при этом всё ещё здоровые быстрые спаны, просто попавшие в тот же временной диапазон. Панели атрибутов под тепловой картой отсортированы так, что сначала показываются самые большие расхождения. В этом примере диаграммы в верхней строке выявляют самые сильные сигналы: SpanKind, SpanName и ScopeName показывают резкое оранжево-зеленое разделение между медленным Selection и здоровым Background. Если рассматривать их вместе, они дают ясное представление о том, что изменилось в точке перегиба. Это подходящий вариант, когда вы хотите ответить на вопрос «что изменилось?». Есть и более точный вариант с тем же подходом: когда небольшой узел медленных спанов появляется на фоне в остальном спокойной полосы (короткий всплеск у правого края, кластер в середине стабильного периода), вместо этого обведите небольшим прямоугольником только этот кластер. Форма меняет сам вопрос: вертикальная полоса спрашивает что изменилось во времени, а небольшой сфокусированный прямоугольник — что особенного в этом кластере.

Сценарий 2: медленные и быстрые

Когда тепловая карта показывает две группы задержек, чётко разделённые по оси длительности, протяните широкий прямоугольник на весь временной диапазон, но так, чтобы он охватывал только верхнюю, явно отделённую полосу. Медленная группа станет Selection, а основная быстрая масса — Background. Нарисуйте прямоугольник плотно вокруг верхней полосы, оставив заметный горизонтальный зазор между ней и плотной основной массой. Если прямоугольник будет слишком свободным и захватит часть быстрой группы, различия размоются. Линия потолка в 100 с сама по себе показательна: постоянная горизонтальная линия на круглом значении — характерный признак фиксированного тайм-аута. Если ни один атрибут спана не позволяет чётко различить эти две группы, это тоже полезный результат: он указывает на метрики уровня хоста и среды выполнения (паузы GC, конкуренцию I/O, задержки планировщика, эффекты холодного кэша, шумных соседей), а не на атрибуты спанов. Это подходящая форма анализа, когда вы хотите ответить на вопрос «чем медленные спаны отличаются от быстрых?», а не ищете конкретную аномалию. Атрибут с заметным расхождением указывает на причину в пути выполнения кода или во входных данных; если различий нет, причина, скорее всего, системная.

Итеративный drill-down

Режимы сравнения и распределения наиболее полезны, когда их используют последовательно. Щёлкните по любой полосе, чтобы открыть всплывающее окно с тремя действиями:
  • Filter: оставить только спаны с этим значением
  • Exclude: исключить спаны с этим значением
  • Copy: скопировать значение в буфер обмена
После применения фильтра или исключения выделение на тепловой карте сбрасывается, тепловая карта перестраивается для нового набора данных, а режим распределения продолжается уже для этого отфильтрованного набора. Следите за тем, как меняется форма тепловой карты: удачный фильтр заметно убирает медленную полосу, схлопывает бимодальное разделение или выравнивает восходящий дрейф. Повторяйте: найдите следующее подозрительное значение, примените фильтр, посмотрите на новую тепловую карту, посмотрите на новые распределения. Нескольких итераций обычно достаточно, чтобы сузить регрессию до одного-двух атрибутов.
Агрегированные бакеты Other (N), в которые сворачиваются редкие значения, не кликабельны. Чтобы отфильтровать конкретное значение внутри такого бакета, используйте строку поиска напрямую.
Когда набор данных станет достаточно небольшим, переключитесь на вкладку Results Table, чтобы изучить отдельные трейсы; ваши фильтры сохранятся.

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

Значок шестерёнки в правом верхнем углу тепловой карты открывает панель Display Settings.
ПараметрПо умолчаниюОписание
ScaleLogLog подходит для широких диапазонов задержки; Linear лучше для узких, равномерных распределений.
Value(Duration)/1e6Любое числовое выражение: размер ответа, частота ошибок, произвольный атрибут span.
Countcount()Агрегация для цвета. Переключите на avg(), sum(), p95() или выражения вроде countDistinct(field).
Нажмите Применить, чтобы обновить тепловую карту; расположенный ниже анализ атрибутов также обновится.
Тепловая карта на панелях мониторингаТа же тепловая карта также доступна как плитка панели мониторинга, что удобно, если вы хотите отслеживать форму распределения во времени вне сценария детализации Event Deltas.
Распространённые сценарии, в которых стоит изменить эти значения по умолчанию:
  • Переключите Scale на Linear, когда диапазон задержки узкий (например, для сервиса, у которого все спаны выполняются от 5 до 50 мс). Логарифмическая шкала напрасно занимает вертикальное пространство в верхней части, где данных нет.
  • Стройте по оси Y что-то кроме duration. Если задать для Value SpanAttributes.http.response.size, можно исследовать медленные крупные ответы; выражение вроде if(StatusCode = 'Error', 1, 0) отображает частоту ошибок во времени для разных сервисов.
  • Используйте для цвета что-то кроме count. Если задать для Count p95(Duration), каждый бакет будет окрашен по tail latency, а не по объёму, что помогает выявить редкие, но медленные области, которые теряются при представлении на основе count. countDistinct(TraceId) позволяет отличить объём trace от объёма span, когда один trace порождает много спанов.

Советы по эффективному использованию

Несколько приёмов помогут сделать Event deltas значительно полезнее:
  • Сначала отфильтруйте данные до одного сервиса. Латентность может сильно различаться между сервисами, и если смешать их вместе, сигнал теряется. Перед началом используйте строку поиска, чтобы сузить выборку до одного ServiceName (или одной конечной точки), тогда тепловая карта и распределения будут отражать сопоставимую совокупность.
  • Выбирайте участки с явным визуальным контрастом. Режим сравнения работает лучше всего, когда полоса Selection заметно отличается от Background — например, в случае деградировавшего периода, который начинается в легко узнаваемый момент, или медленного хвоста, явно отделённого от основной массы. Если выделение сильно перекрывается с остальными данными, оно чаще выявляет шум, а не реальное отклонение.
  • Повторяйте цикл: фильтр, тепловая карта, фильтр. Одно выделение редко позволяет найти причину. Воспринимайте первое сравнение как гипотезу, фильтруйте по значению с наибольшим расхождением и заново анализируйте тепловую карту и распределения. Две-три итерации обычно позволяют сузить регрессию до одного-двух атрибутов.
  • Используйте режим распределения без выделения, когда контраст ещё не виден (то есть вы знаете, что проблема есть, но тепловая карта выглядит равномерной). Примените фильтр-гипотезу — например, только спаны с ошибками, только клиентские спаны или только одну конечную точку, — и позвольте распределениям атрибутов указать на значения с наибольшим влиянием, прежде чем рисовать какой-либо прямоугольник.

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

Вкладка Event Deltas не видна

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

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

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