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

架构

ClickStack 的架构由三个核心组件组成:ClickHouseHyperDXOpenTelemetry (OTel) Collector。一个 MongoDB 实例用于存储应用程序状态。它们共同提供一个针对日志、指标和追踪进行优化的高性能开源可观测性技术栈。

架构概览

架构图

ClickHouse:数据库引擎

ClickStack 的核心是 ClickHouse,这是一款为大规模实时分析而设计的列式数据库。它负责可观测性数据的摄取与查询,实现以下能力:

  • 在数 TB 级事件数据上实现亚秒级搜索
  • 每天摄取数十亿条高基数记录
  • 对可观测性数据实现至少 10 倍的高压缩率
  • 原生支持半结构化 JSON 数据,允许动态演进的模式(schema)
  • 功能强大的 SQL 引擎,内置数百个分析函数

ClickHouse 以“宽事件”的方式处理可观测性数据,从而在单一统一的数据结构中实现对日志、指标和链路追踪的深度关联。

OpenTelemetry collector:数据摄取

ClickStack 包含一个预配置的 OpenTelemetry(OTel)收集器,用于以开放、标准化的方式摄取遥测数据。用户可以通过 OTLP 协议发送数据,方式包括:

  • gRPC(端口 4317
  • HTTP(端口 4318

该收集器会以高效的批处理方式将遥测数据导出到 ClickHouse。它针对每个数据源提供经过优化的表结构,确保在所有信号类型上都具备良好的可扩展性和性能。

HyperDX:用户界面

HyperDX 是 ClickStack 的用户界面。它提供:

  • 自然语言和类 Lucene 风格的搜索
  • 用于实时调试的实时日志尾部(live tail)查看
  • 日志、指标和链路追踪的统一视图
  • 面向前端可观测性的会话回放功能
  • 仪表板创建和告警配置
  • 用于高级分析的 SQL 查询界面

HyperDX 专为 ClickHouse 设计,将强大的搜索能力与直观的工作流相结合,使用户能够快速发现异常、排查问题并获取洞察。

MongoDB:应用状态

ClickStack 使用 MongoDB 存储应用级状态,包括:

  • 仪表盘
  • 告警
  • 用户配置
  • 已保存的可视化

将状态与事件数据分离,既能确保性能与可扩展性,又能简化备份和配置工作。

这种模块化架构使 ClickStack 能够以开箱即用的方式提供快速、灵活且开源的可观测性平台。