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
に対応する行番号付きのファイル名を含む文字列が含まれます。
シンボル化は、サーバーの設定ファイル内のtrace_log
の下のsymbolize
で有効または無効にできます。
例