Clickhouse Queries
Track and query LangDB traces with ClickHouse, using bloom filter indexes for fast thread and run-specific analytics.
Overview
Clickhouse is used for observability in LangDB. It provides high-performance analytics capabilities that allow us to track and analyze system behavior, performance metrics, and user activities across the platform.
Table Schemas
Traces Table
The following create query represents thetraces
table that stores distributed tracing information of Langdb AI Gateway.
CREATE TABLE IF NOT EXISTS langdb.traces
(
trace_id UUID,
span_id UInt64,
parent_span_id UInt64,
operation_name LowCardinality(String),
kind String,
start_time_us UInt64,
finish_time_us UInt64,
finish_date Date,
attribute Map(String, String),
tenant_id Nullable(String),
project_id String,
thread_id String,
tags Map(String, String),
parent_trace_id Nullable(UUID),
run_id Nullable(UUID)
)
ENGINE = MergeTree
ORDER BY (finish_date, finish_time_us, trace_id)
SETTINGS index_granularity = 8192;
-- Add bloom filter index for thread_id
ALTER TABLE langdb.traces ADD INDEX idx_thread_id thread_id TYPE bloom_filter GRANULARITY 4;
-- Add composite index for tenant_id, project_id, and operation_name
ALTER TABLE langdb.traces ADD INDEX idx_tenant_projec
Common Filters
thread_id
field with its dedicated bloom filter index allows for efficient filtering of traces based on specific execution threads.The
run_id
field enables filtering and grouping traces by specific execution runs.
Last updated
Was this helpful?