ClickStack - ClickHouse 可观测性栈

ClickStack 是一个基于 ClickHouse 构建的生产级可观测性平台,将日志、追踪、指标和会话统一到单一的高性能解决方案中。ClickStack 专为监控和调试复杂系统而设计,使开发人员和 SRE 能够在无需在不同工具间来回切换、也无需借助时间戳或关联 ID 手动拼接数据的情况下,对问题进行端到端追踪。
ClickStack 的核心理念简单但强大:所有可观测性数据都应以宽而信息丰富的事件形式进行摄取。这些事件按数据类型(日志、追踪、指标和会话)分别存储在 ClickHouse 表中,但在数据库层面依然可以被完全查询并进行交叉关联。
ClickStack 利用 ClickHouse 的列式架构、原生 JSON 支持以及完全并行化的执行引擎,高效处理高基数工作负载。这使得在海量数据集上实现亚秒级查询、对大时间范围进行快速聚合,以及对单条追踪进行深度检查成为可能。JSON 以压缩的列式格式存储,从而允许在无需手动干预或预先定义模式的情况下进行模式演进。
功能
该技术栈包含多个专为调试和根因分析设计的关键功能:
- 在同一界面中关联和搜索日志、指标、会话回放和追踪数据
- 与数据模式无关,可直接作用于您现有的 ClickHouse schema 之上
- 为 ClickHouse 优化的高速搜索与可视化
- 直观的全文搜索和属性搜索语法(例如
level:err),SQL 为可选 - 使用事件差异(event deltas)分析异常趋势
- 只需几次点击即可完成告警配置
- 无需复杂查询语言即可在仪表板中展示高基数事件
- 原生 JSON 字符串查询
- 实时流式查看日志和追踪,始终获取最新事件
- 开箱即用的 OpenTelemetry (OTel) 支持
- 从 HTTP 请求到数据库查询(APM)全链路监控健康状况和性能
- 使用事件差异(event deltas)识别异常和性能回归
- 日志模式识别
组件
ClickStack 由三个核心组件组成:
- HyperDX UI – 专用于探索和可视化可观测性数据的前端界面
- OpenTelemetry collector – 自定义构建并预先配置的采集器,对日志、链路追踪和指标采用标准化的模式
- ClickHouse – 整个技术栈的核心高性能分析型数据库
这些组件可以独立部署,也可以组合部署。还提供了浏览器托管版本的 HyperDX UI,用户无需额外基础设施即可连接到现有的 ClickHouse 部署。
开始之前,请先访问入门指南,然后加载示例数据集。你还可以查阅关于部署选项和生产环境最佳实践的文档。
原则
ClickStack 的设计基于一套核心原则,在可观测性栈的各个层面优先兼顾易用性、性能和灵活性:
几分钟内即可轻松完成设置
ClickStack 能与任意 ClickHouse 实例和 schema 开箱即用,仅需极少配置。无论是全新部署,还是集成到现有环境,都可以在几分钟内完成并投入使用。
易用且为可观测性量身打造
HyperDX UI 同时支持 SQL 和类 Lucene 语法,使用户可以选择最契合其工作流的查询界面。该 UI 专为可观测性打造,并经过优化,可帮助团队快速定位根因,顺畅地浏览和分析复杂数据。
端到端可观测性
ClickStack 提供从前端用户会话到后端基础设施指标、应用日志以及分布式追踪的全栈可见性。这一统一视图有助于在整个系统范围内开展深度的关联分析。
专为 ClickHouse 设计
该技术栈的每一层都旨在充分发挥 ClickHouse 的能力。查询经过优化,以充分利用 ClickHouse 的分析函数和列式引擎,从而在海量数据上实现高速搜索与聚合。
原生支持 OpenTelemetry
ClickStack 与 OpenTelemetry 原生集成,通过 OpenTelemetry Collector 端点摄取全部数据。对于高级用户,它还支持使用原生文件格式、自定义管道或 Vector 等第三方工具将数据直接摄取到 ClickHouse 中。
开源且完全可自定义
ClickStack 完全开源,可部署在任何环境中。其 schema 灵活且可由用户修改,UI 在设计时就考虑了对自定义 schema 的支持,可在无需修改的情况下进行适配。所有组件——包括 collectors、ClickHouse 和 UI——都可以独立伸缩,以满足摄取、查询或存储方面的需求。
架构概览

ClickStack 由三个核心组件组成:
-
HyperDX UI
为可观测性构建的用户友好型界面。它同时支持 Lucene 风格查询和 SQL 查询、交互式仪表盘、告警、链路追踪分析等功能——并针对以 ClickHouse 作为后端进行了优化。 -
OpenTelemetry collector
一个自定义构建的收集器,使用为 ClickHouse 摄取优化的约定式 schema 进行配置。它通过 OpenTelemetry 协议接收日志、指标和链路追踪数据,并使用高效的批量写入方式将它们直接写入 ClickHouse。 -
ClickHouse
作为宽事件数据的中心数据存储的高性能分析型数据库。ClickHouse 依托其列式引擎和对 JSON 的原生支持,为大规模的快速搜索、过滤和聚合提供支撑。
除了这三个组件之外,ClickStack 还使用一个 MongoDB 实例 来存储应用状态,例如仪表盘、用户账户和配置信息。
完整的架构图和部署细节可以在架构部分中找到。
对于计划在生产环境中部署 ClickStack 的用户,我们建议阅读"生产环境"指南。