跳到主要内容
跳到主要内容

ClickStack - The ClickHouse 可观察性栈

首页

ClickStack 是一个基于 ClickHouse 构建的生产级可观察性平台,将日志、追踪、指标和会话统一在一个高性能解决方案中。ClickStack 旨在监控和调试复杂系统,使开发人员和 SRE 能够在不切换工具或手动使用时间戳或关联 ID 拼接数据的情况下端到端地追踪问题。

ClickStack 的核心是一个简单但强大的理念:所有可观察性数据应以宽、丰富的事件形式进行摄取。这些事件按数据类型存储在 ClickHouse 表中——日志、追踪、指标和会话——但在数据库级别仍然是完全可查询和可交叉关联的。

ClickStack 构建于 ClickHouse 的列式架构、原生 JSON 支持和完全并行化的执行引擎之上,能够高效处理高基数工作负载。这使得在大规模数据集上的查询时间在毫秒级,快速聚合跨越宽时间范围,深入检查单个追踪成为可能。JSON 以压缩的列式格式存储,允许模式演变而无需手动干预或预先定义。

特性

这个堆栈包含几个关键特性,旨在用于调试和根本原因分析:

  • 关联/搜索日志、指标、会话回放和追踪,所有内容集中在一个地方
  • 与模式无关,适用于现有的 ClickHouse 模式
  • 针对 ClickHouse 优化的闪电般快速的搜索与可视化
  • 直观的全文搜索和属性搜索语法(例如 level:err),SQL 可选
  • 通过事件增量分析异常趋势
  • 只需几次点击即可设置警报
  • 在不复杂查询语言的情况下高效展示高基数事件
  • 原生 JSON 字符串查询
  • 实时尾随日志和追踪,以始终获取最新事件
  • 开箱即用的 OpenTelemetry (OTel) 支持
  • 从 HTTP 请求到数据库查询(APM)监控健康和性能
  • 用于识别异常和性能回归的事件增量
  • 日志模式识别

组件

ClickStack 由三个核心组件组成:

  1. HyperDX UI – 旨在探索和可视化可观察性数据的专用前端
  2. OpenTelemetry collector – 预配置的自定义收集器,具有用于日志、追踪和指标的意见化模式
  3. ClickHouse – 堆栈核心的高性能分析数据库

这些组件可以独立或一起部署。HyperDX UI 还提供浏览器托管版本,允许用户连接到现有的 ClickHouse 部署,而无需额外的基础设施。

要开始使用,请访问 入门指南,然后加载 示例数据集。您还可以查看有关 部署选项生产最佳实践 的文档。

原则

ClickStack 的设计遵循一套核心原则,以优先考虑易用性、性能和灵活性,贯穿可观察性堆栈的每一层:

几分钟内轻松设置

ClickStack 可以与任何 ClickHouse 实例和模式开箱即用,所需配置极少。无论您是从零开始还是与现有设置集成,都可以在几分钟内启动并运行。

用户友好,专为目的而建

HyperDX UI 支持 SQL 和 Lucene 风格语法,允许用户选择适合其工作流的查询接口。专为可观察性设计,UI 优化为帮助团队快速识别根本原因,并无缝导航复杂的数据。

端到端可观察性

ClickStack 提供全面的可见度,从前端用户会话到后端基础设施指标、应用程序日志和分布式追踪。此统一视图实现了整个系统的深度关联和分析。

为 ClickHouse 而建

堆栈的每一层都旨在充分利用 ClickHouse 的能力。查询经过优化,以利用 ClickHouse 的分析函数和列式引擎,确保在大规模数据上快速搜索和聚合。

原生 OpenTelemetry

ClickStack 与 OpenTelemetry 原生集成,通过 OpenTelemetry collector 端点摄取所有数据。对于高级用户,它还支持使用原生文件格式、自定义管道或像 Vector 这样的第三方工具直接摄取到 ClickHouse。

开源且完全可定制

ClickStack 完全开源,可以部署在任何地方。模式灵活且可用户修改,UI 可以配置为与自定义模式兼容,无需更改。所有组件——包括收集器、ClickHouse 和 UI——都可以独立扩展,以满足摄取、查询或存储需求。

架构概述

简单架构

ClickStack 由三个核心组件组成:

  1. HyperDX UI
    一个用户友好的可观察性界面。它支持 Lucene 风格和 SQL 查询、交互式仪表板、警报、追踪探索等——全部优化 ClickHouse 作为后端。

  2. OpenTelemetry collector
    一个自定义构建的收集器,配置了针对 ClickHouse 摄取优化的意见化模式。它通过 OpenTelemetry 协议接收日志、指标和追踪,并使用高效的批量插入直接写入 ClickHouse。

  3. ClickHouse
    作为宽事件中心数据存储的高性能分析数据库。ClickHouse 利用其列式引擎和原生支持 JSON,实现快速搜索、过滤和大规模聚合。

除了这三个组件,ClickStack 还使用 MongoDB 实例 存储应用程序状态,如仪表板、用户帐户和配置设置。

完整的架构图和部署细节可以在 架构部分 找到。

对于有兴趣将 ClickStack 部署到生产环境的用户,我们建议阅读 "生产指南"