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