ClickHouse Cloud에서 쿼리하기이 시스템 테이블의 데이터는 ClickHouse Cloud의 각 노드에 로컬로 저장됩니다. 따라서 전체 데이터를 모두 확인하려면
clusterAllReplicas 함수를 사용해야 합니다. 자세한 내용은 여기를 참조하십시오.설명
symbols 및 lines 컬럼에 उपलब्ध하므로 인트로스펙션 함수 없이 로그를 직접 분석할 수 있습니다. symbolize 설정은 프로파일러가 수집한 트레이스 유형에 적용되지만, Instrumentation 트레이스 유형의 행은 이 설정과 관계없이 심볼화됩니다. 심볼화는 ELF 플랫폼(예: Linux) 및 macOS에서 지원됩니다. FreeBSD에서는 symbols 및 lines 컬럼이 항상 비어 있습니다. symbols의 함수 이름은 바이너리의 심볼 테이블에서 가져오며 기본적으로 사용할 수 있습니다. 반면 lines의 소스 위치는 가능한 범위에서 제공됩니다. 이를 위해 디버그 정보(macOS에서는 .dSYM 번들)가 필요하며, ELF 플랫폼에서는 기본 ClickHouse 바이너리 내부의 프레임에 대해서만 해석됩니다. 해석되지 않은 프레임의 lines 항목은 비어 있습니다.
심볼화가 비활성화되어 있거나 trace 컬럼의 원시 주소를 동적으로 해석하려는 경우(예: 인라인 프레임 확장) addressToLine, addressToLineWithInlines, addressToSymbol, demangle 인트로스펙션 함수를 사용하십시오. 이 함수들은 심볼화와 동일한 플랫폼(예: Linux 등의 ELF 플랫폼 및 macOS)에서 사용할 수 있습니다. FreeBSD에서는 이 함수들도 컴파일되지 않으므로 trace의 주소를 서버 외부에서 해석해야 합니다.
컬럼
hostname(LowCardinality(String)) — 쿼리를 실행하는 서버의 호스트명입니다.event_date(Date) — 샘플링 시점의 날짜입니다.event_time(DateTime) — 샘플링 시점의 타임스탬프.event_time_microseconds(DateTime64(6)) — 마이크로초 단위 정밀도를 가진 샘플링 시점의 타임스탬프입니다.timestamp_ns(UInt64) — 나노초 단위로 기록된 샘플링 시점의 타임스탬프입니다.revision(UInt32) — ClickHouse 서버의 빌드 리비전입니다.clickhouse-client로 서버에 연결하면Connected to ClickHouse server version 19.18.1.와 유사한 문자열이 표시됩니다. 이 필드에는 서버의version이 아니라revision이 들어 있습니다.trace_type(Enum8(‘Real’ = 0, ‘CPU’ = 1, ‘Memory’ = 2, ‘MemorySample’ = 3, ‘MemoryPeak’ = 4, ‘ProfileEvent’ = 5, ‘JemallocSample’ = 6, ‘MemoryAllocatedWithoutCheck’ = 7, ‘Instrumentation’ = 8)) — 트레이스 유형:Real은 실제 경과 시간을 기준으로 스택 트레이스를 수집함을 나타냅니다.CPU는 CPU 시간을 기준으로 스택 트레이스를 수집함을 나타냅니다.Memory는 메모리 할당이 다음 워터마크를 초과할 때 메모리 할당 및 해제를 수집함을 나타냅니다.MemorySample은 임의의 메모리 할당 및 해제를 수집함을 나타냅니다.MemoryPeak은 최대 메모리 사용량 업데이트를 수집함을 나타냅니다.ProfileEvent는 profile events 증가분을 수집함을 나타냅니다.JemallocSample은 jemalloc 샘플을 수집함을 나타냅니다.MemoryAllocatedWithoutCheck는 메모리 제한을 무시하고 수행되는 대규모 할당(>16MiB)을 수집함을 나타냅니다(ClickHouse 개발자 전용).Instrumentation은 XRay를 통해 수행된 계측으로 수집된 traces를 나타냅니다.cpu_id(UInt64) — CPU 식별자.thread_id(UInt64) — 스레드 ID.thread_name(LowCardinality(String)) — 스레드 이름입니다.query_id(String) — query_log 시스템 테이블(system table)에서 실행 중이던 쿼리의 세부 정보를 조회하는 데 사용할 수 있는 쿼리 식별자입니다.trace(Array(UInt64)) — 샘플링 시점의 스택 트레이스입니다. 프로파일러가 수집한 trace 타입의 경우 FreeBSD를 제외한 ELF 플랫폼에서는 기본 ClickHouse 바이너리 내 주소가 물리적 파일 오프셋으로 저장되며, 다른 주소는 ClickHouse 서버 프로세스 내의 가상 메모리 주소입니다. Instrumentation trace 행은 예외로, 원시 가상 메모리 주소를 저장합니다.size(Int64) — trace 타입이 Memory, MemorySample, MemoryAllocatedWithoutCheck 또는 MemoryPeak이면 할당된 메모리의 크기이고, 다른 trace 타입에서는 0입니다.ptr(UInt64) — 할당된 청크의 주소입니다.memory_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — 메모리 트래커 컨텍스트( Memory/MemoryPeak에만 해당):Unknown컨텍스트는 이 trace_type에 대해 정의되지 않습니다.Global은 서버 컨텍스트를 나타냅니다.User는 사용자/머지 컨텍스트를 나타냅니다.Process는 프로세스(즉, 쿼리) 컨텍스트를 나타냅니다.Thread는 스레드 컨텍스트(특정 프로세스의 스레드)를 나타냅니다.Max는 메모리 트래커가 차단되지 않았음을 의미하는 특수 값입니다(blocked_context 컬럼에 사용).memory_blocked_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — 메모리 추적기(memory tracker)가 차단되는 컨텍스트입니다(ClickHouse 개발자 전용):Unknown컨텍스트는 이 trace_type에 대해 정의되어 있지 않습니다.Global은 서버 컨텍스트를 나타냅니다.User는 사용자/머지 컨텍스트를 나타냅니다.Process는 프로세스(즉, 쿼리) 컨텍스트를 나타냅니다.Thread는 스레드(특정 프로세스의 스레드) 컨텍스트를 나타냅니다.Max는 메모리 추적기가 차단되지 않음을 의미하는 특수 값입니다(blocked_context 컬럼용).event(LowCardinality(String)) — trace 타입이 ProfileEvent인 경우 업데이트된 프로파일 이벤트 이름이며, 다른 trace 타입인 경우 빈 문자열입니다.increment(Int64) — trace 유형이 ProfileEvent일 때는 프로파일 이벤트의 증가량이고, 다른 trace 유형에서는 0입니다.symbols(Array(LowCardinality(String))) — 심볼화가 활성화된 경우trace에 대응하는 디맹글링된 심볼 이름을 포함합니다. 심볼화는 서버 설정 파일의trace_log아래symbolize설정에서 활성화하거나 비활성화할 수 있으며, 이 설정은 프로파일러가 수집한 trace 유형에 적용됩니다. 반면Instrumentationtrace 유형의 행은 이 설정과 관계없이 심볼화됩니다. 심볼화는 ELF 플랫폼(예: Linux)과 macOS에서 지원되며, FreeBSD에서는 이 컬럼이 항상 비어 있습니다.lines(배열(LowCardinality(String))) — 심볼화가 활성화되어 있으면trace에 대응하는 파일 이름과 줄 번호가 포함된 문자열을 담습니다.symbolize설정은 프로파일러가 수집한 trace 유형에 적용되며,Instrumentationtrace 유형의 행은 이 설정과 관계없이 심볼화됩니다. 심볼화는 ELF 플랫폼(예: Linux)과 macOS에서 지원되며, FreeBSD에서는 이 컬럼이 항상 비어 있습니다. 소스 위치는 최선의 노력으로 제공됩니다. 이를 위해서는 디버그 정보(macOS에서는.dSYM번들)가 필요하며, ELF 플랫폼에서는 기본 ClickHouse binary 내부의 프레임에 대해서만 해석됩니다. 해석되지 않은 프레임에는 빈 항목이 있습니다.function_id(널 허용(Int32)) — trace 타입 Instrumentation에서 elf-binary의 xray_instr_map 섹션에 있는 함수에 할당된 ID입니다.function_name(Nullable(String)) — trace 유형 Instrumentation에서 계측된 함수의 이름입니다.handler(널 허용(String)) — trace 유형 Instrumentation에서 계측된 함수의 handler입니다.entry_type(Nullable(Enum8(‘Entry’ = 0, ‘Exit’ = 1))) — trace 타입이 Instrumentation인 경우, 계측된 함수의 진입 유형입니다.duration_nanoseconds(Nullable(UInt64)) — trace 타입의 Instrumentation에서 함수가 실행된 시간을 나노초 단위로 나타냅니다.
build_id— 실행 중인 ClickHouse 서버 바이너리의 build ID를 나타내는 별칭입니다.
trace_log 아래에 있는 symbolize 설정으로 심볼화를 활성화하거나 비활성화할 수 있습니다. 기본적으로 활성화되어 있습니다. 이 설정은 프로파일러가 수집한 트레이스 유형에 적용되지만, Instrumentation 트레이스 유형의 행은 이 설정과 관계없이 심볼화됩니다.
예시
Chrome Event Trace Format으로 변환
chrome_trace.sql 파일에 저장하십시오:
trace.json 파일로 내보내면, Perfetto 또는 speedscope로 가져올 수 있습니다.
관련 항목
- SYSTEM INSTRUMENT — 계측 지점을 추가하거나 제거합니다.
- system.instrumentation — 계측이 적용된 지점을 확인합니다.
- system.symbols — 계측 지점을 추가할 수 있는 심볼을 확인합니다.