ClickStack: ClickHouse’s New Observability Stack Unveiled
The ClickHouse open source project has gained interest in the observability community, thanks to its outstanding performance benchmarks, as I covered in a previous blog post. Now ClickHouse is doubling down on observability with the release of ClickStack, a new open source observability stack that bundles in ClickHouse, OpenTelemetry and HyperDX frontend.
I invited Mike Shi, the co-founder of HyperDX and co-creator of ClickStack, to tell us all about this new project. Mike is Head of Observability at ClickHouse Inc., which acquired HyperDX earlier this year.
The Observability User Experience at HyperDX
HyperDX approach centers the user experience around the engineer’s journey from symptom to root cause, rather than the individual signals. “At the end of the day, it’s all about going from a problem an engineer is facing to the clues they need to find that root cause”, Mike explains.
That philosophy led HyperDX to intentionally remove the boundaries between traditional telemetry signals. You won’t find separate tabs for “Logs” or “Metrics” in the UI. Instead, there’s a unified search experience that allows users to query across logs, traces, and even client-side signals using a single syntax. Find one relevant data point — say, a log line — and HyperDX should automatically correlate it to related traces, metrics, or infrastructure metadata.
This unified model extends across the entire stack: from backend logs and spans, to frontend telemetry like session replays and client-side traces. Whether it’s RUM, snapshots, exceptions, pod restarts, or memory pressure alerts — HyperDX aims to bring it all into a single coherent narrative.
Introducing ClickStack
To solve these challenges, The team developed ClickStack, an open source observability stack that combines ClickHouse with the HyperDX intelligent frontend and the OpenTelemetry project for ingestion pipeline. It provides a full-stack telemetry platform offering ingestion, indexing, querying, and visualization out of the box.
One of the hardest product questions in observability is: who are you building for?
- Point-and-click UIs are great for novices.
- Query languages are essential for power users.
- No single interface fits all personas.
ClickStack embraces this diversity.
“There is no one best way… It’s very difficult to get one platform to fit them all.”
The design bet was to provide a default UX that scales with expertise — starting from intuitive searches and escalating all the way to full SQL for advanced scenarios.
SQL vs. Lucene: Querying the Right Way
One of the more unique aspects of ClickStack is that it supports both SQL and Lucene-like query syntaxes.
SQL is powerful and well-known, and is the native query language of the ClickHouse project, but:
- It can be verbose for simple tasks like “find all errors”.
- It lacks native support for token-based search, which is vital for free-text logs.
Lucene syntax, by contrast, is concise and familiar to many who’ve practiced log analytics.
“In Lucene, you can just type the word ‘error’ and hit enter. SQL can’t do that.”
ClickStack leverages Lucene’s expressiveness and combines it with SQL’s analytical muscle, giving users the best of both worlds.
Performance, JSON type, and Handling Cardinality
ClickHouse was designed for speed. But observability data is messy: dynamic fields, sparse events, and exploding label sets. While there are successful case studies for building observability solutions directly on top of ClickHouse, such as Shopify’s in-house observability, Mike admits that it has required significant engineering investment: “It’s certainly a lot of engineering effort to turn a database into an observability platform.” ClickStack aims to make observability with ClickHouse more readily accessible to organizations.
There’s been a growing trend of observability tools towards the wide column storage approach, some even referring to it as “observability 2.0”, and this is also the approach taken with ClickHouse and ClickStack. One of the issues I’ve seen with this approach has been around performance, where querying fields in these arbitrarily-wide columns involves linear scans and query-time type casts (as it’s all stored as a string), let alone querying over nested JSON.
JSON Columns for Semi-Structured Data
ClickStack introduced a new native JSON column type, which looks promising in addressing the above issue. With the JSON type, each path dynamically get promoted to its own true column.
“When you query a field, it only reads that field — dramatically cutting I/O. No more slow scans or awkward workarounds with management overhead like pre-materializing columns.”
Mike shares the performance gains they witnessed, with 10x faster searches and 100x less data scanned, just by using the JSON type smartly.
Cardinality and Time Series
Cardinality is the bane of many TSDBs. ClickStack takes a different route:
- Everything goes into one big table.
- Labels act as keys, and ClickHouse’s indexing handles performance.
- You don’t explode into millions of discrete time series objects.
“Even with billions of time series, we just expand the table. No need to manage tons of time series objects.”
This strategy lets ClickStack scale elegantly — without resorting to sampling, rollups or aggressive retention hacks.
Real-World Use Cases: OpenAI, Anthropic, Tesla
At the first ClickStack Open House event, several industry giants shared how they’re using ClickStack in production:
- Tesla processes over a billion events per second, storing up to one quintillion rows in ClickHouse.
- OpenAI contributes upstream optimizations and relies on ClickStack to monitor ChatGPT’s infrastructure, especially during product launches.
- Anthropic reported massive savings after switching to ClickStack — both in performance and cost.
These stories underscore the real-world use of ClickStack at high scale.
Want to learn more? Check out the OpenObservability Talks episode: ClickStack: ClickHouse’s New Observability Stack Unveiled.
