Skip to main content
ClickStack поддерживает визуализацию событий со встроенной возможностью построения диаграмм в интерфейсе ClickStack (HyperDX). Эти диаграммы можно добавлять на панели мониторинга, чтобы открывать к ним общий доступ для других пользователей. Визуализации можно создавать на основе трассировок, метрик, журналов или любых широких схем событий, определяемых пользователем.

Создание визуализаций

Интерфейс Chart Explorer в HyperDX позволяет визуализировать метрики, трассировки и журналы с течением времени, упрощая создание быстрых визуализаций для анализа данных. Этот интерфейс также используется при создании панелей мониторинга. В следующем разделе пошагово показано, как создать визуализацию с помощью Chart Explorer. Создание любой визуализации начинается с выбора источника данных, затем метрики, а при необходимости — выражений фильтра и полей группировки. По сути, визуализации в HyperDX соответствуют SQL-запросу с GROUP BY: вы задаёте метрики для агрегации по выбранным измерениям.
Генерация диаграмм с помощью ИИClickStack также поддерживает создание диаграмм из промптов на естественном языке с помощью возможности text-to-chart. Опишите, что вы хотите увидеть, и ClickStack автоматически сгенерирует визуализацию.
Например, можно построить диаграмму количества ошибок (count()), сгруппированных по имени сервиса. В примерах ниже используется удалённый набор данных, доступный на sql.clickhouse.com, который описан в руководстве “Remote Demo Dataset”. Вы также можете повторить эти примеры на play-clickstack.clickhouse.com.
2

Создайте визуализацию

В примере ниже мы строим диаграмму средней длительности запросов по времени с группировкой по имени сервиса. Для этого нужно указать метрику, столбец (это может быть SQL-выражение) и поле группировки.Выберите тип визуализации Line/Bar в верхнем меню, затем набор данных Traces (или Demo Traces, если вы используете play-clickstack.clickhouse.com). Заполните следующие значения:
  • Метрика: Average
  • Столбец: Duration/1000
  • Where: <empty>
  • Group By: ServiceName
  • Alias: Average Time
Обратите внимание: события можно фильтровать либо с помощью SQL-условия WHERE, либо с помощью синтаксиса Lucene, а также задавать временной диапазон, за который они должны отображаться. Также поддерживается несколько серий.Например, можно отфильтровать данные по сервису frontend, добавив фильтр ServiceName:"frontend". Нажмите Add Series, чтобы добавить вторую серию для количества событий по времени с псевдонимом Count.Чтобы создать серию, похожую на уже существующую, её можно дублировать вместо того, чтобы начинать с нуля. Нажмите значок копирования (Duplicate series) в строке серии, чтобы вставить копию прямо под ней. Копия сохраняет настройки исходной серии, такие как метрика, столбец и фильтр. Затем нужно изменить только те поля, которые отличаются (например, агрегацию), и задать копии собственный псевдоним. Дублирование доступно везде, где поддерживается несколько серий. Оно скрыто для типов визуализации, в которых допускается только одна серия, например Number, Pie и Heatmap.
Визуализации можно создавать из любого источника данных — метрик, трассировок или журналов. ClickStack обрабатывает всё это как события в широком формате. Любой числовой столбец можно отображать на диаграмме во времени, а строковые, числовые столбцы и столбцы с датами можно использовать для группировки.Такой унифицированный подход позволяет создавать панели мониторинга для разных типов телеметрии, используя единую гибкую модель.

Создание панелей мониторинга

Панели мониторинга позволяют группировать связанные визуализации, чтобы сравнивать Метрики и анализировать закономерности рядом друг с другом, выявляя возможные первопричины проблем в ваших системах. Эти панели мониторинга можно использовать для разовых исследований или сохранять для постоянного мониторинга. Глобальные фильтры можно применять на уровне панели мониторинга, и они автоматически распространяются на все визуализации в её составе. Это обеспечивает единообразную детализацию во всех диаграммах и упрощает сопоставление событий между сервисами и различными типами телеметрии. Ниже мы создадим панель мониторинга с двумя визуализациями, используя источники данных журналов и трассировок. Эти шаги можно повторить на play-clickstack.clickhouse.com или локально, подключившись к датасету, размещённому на sql.clickhouse.com, как описано в руководстве “Remote Demo Dataset”.
2

Создайте визуализацию — среднее время запроса по сервисам

Выберите Add New Tile, чтобы открыть панель создания визуализации.В верхнем меню выберите тип визуализации Line/Bar, затем набор данных Traces (или Demo Traces, если вы используете play-clickstack.clickhouse.com). Заполните следующие поля, чтобы создать диаграмму со средней длительностью запросов во времени для каждого сервиса:
  • Название диаграммы: Average duration by service
  • Метрика: Average
  • Столбец: Duration/1000
  • Where: <empty>
  • Группировать по: ServiceName
  • Псевдоним: Average Time
Нажмите кнопку play перед тем, как нажать Save.Измените размер визуализации так, чтобы она занимала всю ширину панели мониторинга.
3

Создайте визуализацию — события по времени по сервисам

Выберите Add New Tile, чтобы открыть панель создания визуализации.Выберите в верхнем меню тип визуализации Line/Bar, затем набор данных Logs (или Demo Logs, если используете play-clickstack.clickhouse.com). Заполните следующие поля, чтобы создать график, показывающий количество событий по времени для каждого имени сервиса:
  • Название графика: Event count by service
  • Метрика: Count of Events
  • Where: <empty>
  • Group By: ServiceName
  • Alias: Count of events
Нажмите кнопку play перед тем, как нажать Save.Измените размер визуализации так, чтобы она занимала всю ширину панели мониторинга.
4

Добавьте плитку тепловой карты для длительности span

Плитки тепловой карты показывают количество событий, попадающих в каждый бакет (time, value), в виде цветной сетки. Используйте тепловую карту, когда нужно видеть форму распределения во времени, а не только среднее значение или один процентиль. Тепловая карта задержки позволяет выявить бимодальные паттерны длительности, кластеры «медленного хвоста» или резкие расширения, которые линейный график просто усреднил бы.Чтобы добавить плитку тепловой карты:
  1. Выберите Add New Tile.
  2. В верхнем меню выберите тип визуализации Heatmap. В раскрывающемся списке источников данных показываются только источники, чей тип источника — Traces. Источники журналов, метрик и сеансов скрыты, поскольку для тепловых карт нужен столбец длительности span, который есть только у источников трассировок.
  3. Выберите любой из ваших источников трассировок по имени. Само имя произвольно — значение имеет только тип.
После выбора источника поля тепловой карты автоматически заполняются:
  • Value: Duration Expression источника, приведённое к текущей единице отображения (например, (Duration)/1e6, чтобы преобразовать длительность span каждого события из наносекунд в миллисекунды)
  • Count: count()
  1. Задайте имя графика и используйте Where, чтобы ограничить тепловую карту конкретным сервисом или набором операций, за производительностью которых вы хотите наблюдать.
  2. Настройте временной диапазон в соответствии с нужным периодом. Более широкие диапазоны позволяют увидеть сдвиги распределения и бимодальные паттерны задержки, которые короткие окна могут скрывать.
В примере ниже показан один сервис в 24-часовом окне, где быстрый и медленный пути длительности его span чётко разделены на две горизонтальные полосы.Чтобы дополнительно настроить тепловую карту, нажмите Display Settings, чтобы открыть выдвижную панель для Scale (Log или Linear), а также выражений Value и Count. Полный список параметров приведён в разделе Customize the heatmap на странице Event Deltas. Здесь используется та же панель.Нажмите Run, чтобы предварительно просмотреть график, затем — Save.Сохранённая плитка отображается на панели мониторинга как тепловая карта. Наведите указатель на любую ячейку, чтобы увидеть границы бакета и количество событий.
Два запроса ClickHouse для каждой тепловой картыТепловая карта строится с помощью двух последовательных запросов: небольшого запроса границ, который определяет диапазон значений, и запроса тепловой карты, который подсчитывает события в каждом бакете. Оба запроса видны в редакторе в разделе Generated SQL, если вы хотите их изучить или скопировать.

Переход к Event Deltas

Нажмите любую ячейку на готовой плитке тепловой карты, чтобы открыть действие View in Event Deltas.При выборе этого действия открывается представление Event Deltas, куда переносятся источник данных плитки, условие Where и временной диапазон. Там вы сможете интерактивно исследовать то же распределение, разбить его по attribute, чтобы понять, чем медленные spans отличаются от быстрых, и изучить отдельные spans, стоящие за любой ячейкой, не пересобирая запрос вручную.
5

Фильтрация на панели мониторинга

Фильтры Lucene или SQL, а также временной диапазон, можно задавать на уровне панели мониторинга — они автоматически применяются ко всем визуализациям.Для примера примените к панели мониторинга фильтр Lucene ServiceName:"frontend" и установите временной диапазон Последние 3 часа. Обратите внимание: теперь визуализации показывают данные только сервиса frontend.Панель мониторинга сохраняется автоматически. Чтобы задать ей имя, выберите заголовок, измените его и нажмите Save Name.

Панели мониторинга — редактирование визуализаций

Чтобы удалить, изменить или дублировать визуализацию, наведите на неё курсор и используйте соответствующие кнопки действий.

Настройки отображения плитки

У каждой плитки есть выдвижная панель Display Settings с параметрами, которые определяют, как отображается её значение. Откройте её в редакторе плитки, нажав Display Settings. Доступные параметры зависят от типа визуализации.

Цвет плитки Number

Для плиток Number можно выбрать статический цвет из палитры диаграмм. Выберите плитку Number, откройте Display Settings и с помощью элемента управления цветом (в целях доступности обозначенного как цвет плитки Number) выберите образец цвета или сбросьте выбор, чтобы использовать цвет текста по умолчанию. Цвета хранятся как токены палитры, а не как необработанные шестнадцатеричные значения, поэтому одна и та же плитка корректно отображается в светлой, тёмной и IDE-темах. Категориальные токены (цветовые тона для нескольких серий): Семантические токены (для статусов): Используйте семантические токены, если число отражает статус (например, количество ошибок — chart-error, а показатель работоспособности — chart-success). Категориальные токены используйте, если нужно визуально различать связанные плитки KPI, не обозначая статус. В старых конфигурациях могут по-прежнему храниться устаревшие числовые токены (chart-1chart-10). При загрузке панели мониторинга ClickStack сопоставляет их с указанными выше токенами, названными по цветовым тонам. Та же палитра используется для необязательных правил цвета на той же выдвижной панели: это упорядоченные условия, которые проверяются по отображаемому значению (приоритет имеет последнее совпадение). Если ни одно правило не совпадает, применяется статический цвет, а затем цвет текста по умолчанию.

Фоновый график плитки Number

Плитки Number могут показывать background chart: спарклайн тренда, который отображается за значением, чтобы динамика в выбранном временном диапазоне была видна с первого взгляда. Это полезно для плиток SLO и error budget, где важны не только текущее значение, но и его изменение со временем. Выбрав плитку Number, откройте Display Settings и установите для Background chart значение Line или Area (или None, чтобы отключить его). Спарклайн строится на основе версии запроса плитки, разбитой по временным бакетам, поэтому дополнительная настройка не требуется. По умолчанию он наследует цвет плитки; задайте Background color, чтобы переопределить его и выбрать конкретный цвет из палитры. Фоновые графики доступны для плиток Number, созданных в конструкторе запросов. Плитки Number с Raw SQL возвращают одно значение без временной размерности для разбиения по бакетам, поэтому этот параметр для них отображается, но остаётся недоступным. Плитки-таблицы могут чередовать фон строк с помощью Alternate Row Background, окрашивая каждую вторую строку, чтобы широкие таблицы было проще просматривать. По умолчанию этот параметр выключен. Выбрав плитку-таблицу, откройте Display Settings и включите Alternate Row Background. Чередование фона — это исключительно визуальный эффект, поэтому оно работает как для плиток-таблиц из конструктора запросов, так и для плиток-таблиц с raw SQL. Плитки-таблицы также сохраняют разделитель между строкой заголовка и данными при прокрутке, чтобы заголовки столбцов оставались визуально отделёнными.

API панелей мониторинга: цвет плитки Number

При создании или обновлении панелей мониторинга через внешний API (POST / PUT /api/v2/dashboards) укажите для color в конфигурации плитки Number, созданной с помощью builder, токен палитры. Необработанные шестнадцатеричные значения не принимаются.
color принимает любое значение из приведённых выше категориальных и семантических списков (например, chart-blue или chart-success). Необязательный параметр backgroundChart.color переопределяет цвет спарклайна, используя значение из того же enum. Сведения об аутентификации и базовых URL см. в справочнике API ClickStack. Панели мониторинга доступны на странице панелей мониторинга. Они организованы по тегам, а встроенные поиск и фильтрация помогают быстро находить нужные панели мониторинга. Панели мониторинга можно добавлять в избранное, чтобы быстро открывать их с боковой панели и из верхней части страницы со списком. Избранное у каждого пользователя свое.

Панели мониторинга — теги

Вы можете добавлять теги к панелям мониторинга и сохранённым поискам, чтобы их было проще организовать. Теги — это гибкий способ категоризации и фильтрации в соответствии с вашими потребностями.

Как работают теги

  • Организация: Теги отображаются на левой боковой панели, где панели мониторинга и сохранённые поиски сгруппированы по назначенным им тегам
  • Несколько тегов: Для более удобной категоризации одному элементу можно назначить один или несколько тегов
  • Автосоздание: Если вы назначите тег, которого ещё не существует, он будет создан автоматически
  • Простое управление: Вы можете в любой момент добавлять или удалять теги, чтобы менять структуру организации
Это упрощает поиск связанных элементов и помогает поддерживать порядок в рабочем пространстве по мере роста коллекции.
Вы также можете выбрать несколько тегов, чтобы отфильтровать и просмотреть элементы из разных категорий:

Пользовательские фильтры и переменные

Помимо текстовых фильтров, доступных на всех панелях мониторинга, сохраненные панели мониторинга поддерживают пользовательские выпадающие фильтры, значения для которых загружаются из данных, запрошенных в ClickHouse. Это удобные, повторно используемые элементы управления фильтрацией, которые позволяют пользователям фильтровать данные без ручного ввода выражений. Каждый фильтр позволяет пользователю выбрать одно или несколько значений и выполняет с ними одно или оба следующих действия:
  • Broadcast — применяет выбранные значения как условие фильтра к соответствующим плиткам. Плитки не требуется обновлять для ссылки на фильтр.
  • Variable — предоставляет выбранные значения запросам плиток как $variableName, поэтому каждая плитка сама определяет, где и как использовать значение.
Фильтр должен выполнять хотя бы одно из этих двух действий. При создании фильтра Broadcast включен по умолчанию. Ниже показано, как добавить фильтр на панель мониторинга, созданную в разделе «Создание панелей мониторинга».
1

Откройте диалоговое окно Edit Filters

Откройте сохраненную панель мониторинга и выберите Edit Filters and Variables на панели инструментов.
2

Добавьте новый фильтр

Нажмите Add new filter. Настройте фильтр: укажите Display Name, выберите Data source и введите Filter expression — SQL-столбец или выражение, уникальные значения которого будут заполнять выпадающий список. Затем нажмите Save filter.Например, чтобы добавить фильтр по сервису для данных трассировки, используйте ServiceName в качестве выражения фильтра и источник данных Traces. Поле “Dropdown values filter” необязательно и позволяет ограничить набор значений, отображаемых в выпадающем списке.В том же диалоговом окне также настраивается, транслирует ли фильтр свое значение и доступно ли оно как переменная; оба варианта описаны ниже.Модальное окно Filters показывает все настроенные фильтры для панели мониторинга. Здесь можно изменять или удалять существующие фильтры, а также добавлять новые.
3

Используйте фильтр

Закройте модальное окно Filters. Новый выпадающий фильтр появится под строкой поиска. Нажмите на него, чтобы увидеть доступные значения, затем выберите одно из них, чтобы отфильтровать все визуализации на панели мониторинга.
4

(Необязательно) Сохраните значения фильтра по умолчанию

Чтобы сохранить выбранное значение фильтра как значение по умолчанию для панели мониторинга, выберите Save Query & Filters as Default в меню панели мониторинга. После этого панель мониторинга всегда будет открываться с примененными выбранными фильтрами. Чтобы сбросить настройки, выберите Remove Default Query & Filters в том же меню.
Пользовательские выпадающие фильтры доступны в сохраненных панелях мониторинга. Пример использования такого подхода см. в панели мониторинга Kubernetes, где есть встроенные выпадающие фильтры для пода, развертывания, имени узла, пространства имен и кластера.

Трансляция фильтров

Если включено Условие широковещательного фильтра, выбранные значения применяются в качестве условия фильтра ко всем плиткам на панели мониторинга, даже если ни одна из них явно не ссылается на этот фильтр. По умолчанию условие применяется ко всем плиткам. Используйте Применяется к источникам, чтобы ограничить его плитками, использующими указанный набор источников. Это полезно, если выражение фильтра имеет смысл только для части данных на панели мониторинга. Плитки конструктора диаграмм автоматически учитывают широковещательные фильтры. Плитки Raw SQL должны содержать макрос $__filters и иметь выбранный источник, поскольку ClickStack не может определить, где в написанном вручную запросе следует разместить условие.

Переменные

Если включена опция Доступно как переменная, выбранное в фильтре значение также доступно в запросах плиток как $variableName. По умолчанию Имя переменной совпадает с отображаемым именем фильтра, из которого удалены недопустимые символы, однако его можно переопределить. Имена должны начинаться с буквы и могут содержать только буквы, цифры и символы подчёркивания. Используйте переменную, если применять условие WHERE ко всем плиткам не требуется — например, чтобы использовать значение в выражении SELECT, предложении HAVING или ключе JOIN либо отфильтровать плитку по столбцу, отличному от выражения самого фильтра.

Использование переменной

Переменная разворачивается в значения, выбранные в её раскрывающемся списке. Форма ссылки определяет формат вывода: Поскольку до выбора значения $name выводится как NULL, используйте следующие макросы везде, где требуется предикат SQL. Пока для переменной макроса ничего не выбрано, оба макроса разворачиваются в 1=1, поэтому запрос остаётся корректным:

Использование переменных в плитках конструктора диаграмм

Во всех полях ввода SQL-выражений конструктора диаграмм можно использовать ссылки на переменные: в столбцах SELECT и выражениях для каждой серии, а также в WHERE, GROUP BY и HAVING. Редактор автоматически дополняет переменные панели мониторинга и показывает, во что разворачивается каждая ссылка для текущего выбора. В режиме SQL рекомендуется использовать макросы $__filter и $__conditionalAll, чтобы запросы оставались корректными при пустом выборе переменных. В полях ввода Lucene макросы недоступны — вместо них используйте переменные напрямую (например, ServiceName:$service). В поле ввода Lucene наличие кавычек вокруг самой ссылки на переменную определяет, как сопоставляется выбор из нескольких значений. Если для $service выбраны значения a,b: Заключайте ссылку на переменную в кавычки — Field:"$var" — если выбранные значения должны точно соответствовать Field, а не сопоставляться по подстроке.

Использование переменных в SQL-плитках

В плитках Raw SQL переменные можно использовать одинаково в любом месте запроса:
Полный список макросов, доступных для SQL-плиток, см. в разделе Визуализация на основе SQL.
Оповещения для плитки, использующей переменную панели мониторинга, проверяются при всех переменных в пустом состоянии, а не с выбранными на панели мониторинга значениями.
Плитки панели мониторинга поддерживают переход на страницу Search. Нажмите точку данных на визуализации, чтобы открыть контекстное меню со следующими вариантами:
  • Показать все события — выполняет переход на страницу Search, где отображаются все события за выбранный период времени.
  • Фильтровать по группе — выполняет переход на страницу Search с фильтром по определённой серии.
Это удобно для исследования конкретных всплесков или аномалий, замеченных на панели мониторинга: вы можете быстро перейти от агрегированного представления к отдельным исходным событиям.

Предустановки

HyperDX поставляется с готовыми панелями мониторинга.

Панель мониторинга ClickHouse

На этой панели мониторинга представлены визуализации для мониторинга ClickHouse. Чтобы перейти к ней, выберите её в левом меню. На этой панели мониторинга используются вкладки, которые разделяют мониторинг запросов на чтение, вставок и инфраструктуры ClickHouse.
Требуемый доступ к системным таблицамЭта панель мониторинга обращается к системным таблицам ClickHouse, чтобы показывать ключевые метрики. Требуются следующие привилегии:GRANT SHOW COLUMNS, SELECT(CurrentMetric_MemoryTracking, CurrentMetric_S3Requests, ProfileEvent_OSCPUVirtualTimeMicroseconds, ProfileEvent_OSReadChars, ProfileEvent_OSWriteChars, ProfileEvent_S3GetObject, ProfileEvent_S3ListObjects, ProfileEvent_S3PutObject, ProfileEvent_S3UploadPart, event_time) ON system.metric_logGRANT SHOW COLUMNS, SELECT(active, database, partition, rows, table) ON system.partsGRANT SHOW COLUMNS, SELECT(event_date, event_time, memory_usage, normalized_query_hash, query, query_duration_ms, query_kind, read_rows, tables, type, written_bytes, written_rows) ON system.query_logGRANT SHOW COLUMNS, SELECT(event_date, event_time, hostname, metric, value) ON system.transposed_metric_log

Панель мониторинга сервисов

Панель мониторинга сервисов отображает активные в данный момент сервисы на основе данных трассировок. Для этого необходимо собирать трассировки и настроить корректный источник данных Traces. Имена сервисов автоматически определяются по данным трассировок, а готовые визуализации распределены по трём вкладкам: HTTP Services, Database и Errors. Визуализации можно фильтровать с помощью синтаксиса Lucene или SQL, а временной интервал — настраивать для более точного анализа.

Панель мониторинга Kubernetes

Эта панель мониторинга позволяет изучать события Kubernetes, собранные через OpenTelemetry. В ней есть расширенные параметры фильтрации: можно фильтровать по поду Kubernetes, Развертыванию, имени узла, Пространству имен и кластеру, а также выполнять поиск по произвольному тексту. Данные Kubernetes для удобства навигации распределены по трем вкладкам: Поды, Узлы и Пространства имен.
Последнее изменение 28 августа 2026 г.