system.trace_log
Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Поэтому для получения полного обзора всех данных требуется функция clusterAllReplicas. Подробности см. здесь.
Содержит трассировки стека, собранные профилировщиком запросов с выборкой.
ClickHouse создаёт эту таблицу, когда задан раздел конфигурации сервера trace_log. Также см. настройки: query_profiler_real_time_period_ns, query_profiler_cpu_time_period_ns, memory_profiler_step, memory_profiler_sample_probability, trace_profile_events.
Для анализа логов используйте функции интроспекции addressToLine, addressToLineWithInlines, addressToSymbol и demangle.
Столбцы:
-
hostname(LowCardinality(String)) — Имя хоста сервера, выполняющего запрос. -
event_date(Date) — Дата момента выборки. -
event_time(DateTime) — Временная метка момента выборки. -
event_time_microseconds(DateTime64) — Временная метка момента выборки с точностью до микросекунд. -
timestamp_ns(UInt64) — Временная метка момента выборки в наносекундах. -
revision(UInt32) — Ревизия сборки сервера ClickHouse.При подключении к серверу через
clickhouse-clientвы видите строку видаConnected to ClickHouse server version 19.18.1.. Это поле содержитrevision, а неversionсервера. -
trace_type(Enum8) — Тип трассировки:Real— сбор трассировок стека по реальному времени (времени настенных часов).CPU— сбор трассировок стека по времени CPU.Memory— сбор выделений и освобождений памяти при превышении очередного порогового значения по объёму выделенной памяти.MemorySample— сбор случайных выделений и освобождений памяти.MemoryPeak— сбор обновлений пикового потребления памяти.ProfileEvent— сбор увеличений счётчиков событий профиля.JemallocSample— сбор выборок jemalloc.MemoryAllocatedWithoutCheck— сбор значительных выделений (>16MiB), выполняемый с игнорированием любых лимитов по памяти (только для разработчиков ClickHouse).
-
thread_id(UInt64) — Идентификатор потока. -
query_id(String) — Идентификатор запроса, который можно использовать для получения подробной информации о выполнявшемся запросе из системной таблицы query_log. -
trace(Array(UInt64)) — Трассировка стека в момент выборки. Каждый элемент — виртуальный адрес памяти внутри процесса сервера ClickHouse. -
size(Int64) — Для типов трассировокMemory,MemorySampleилиMemoryPeak— объём выделенной памяти, для остальных типов трассировок — 0. -
event(LowCardinality(String)) — Для типа трассировкиProfileEvent— имя обновлённого события профиля, для остальных типов трассировок — пустая строка. -
increment(UInt64) — Для типа трассировкиProfileEvent— величина увеличения счётчика события профиля, для остальных типов трассировок — 0. -
symbols, (Array(LowCardinality(String))) — если символизация включена, содержит деманглированные имена символов, соответствующиеtrace. -
lines, (Array(LowCardinality(String))) — если символизация включена, содержит строки с именами файлов и номерами строк, соответствующиеtrace.
Символизацию можно включить или отключить в параметре symbolize в разделе trace_log в конфигурационном файле сервера.
Пример