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представляет собой сбор приростов событий профилирования.
-
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 в файле конфигурации сервера.
Пример