公司介绍
Thanos 是一个云原生的开源项目,提供高可用 Prometheus 设置及长期存储能力。项目最初由 Fabian Reinartz 和 Bartek Plotka 于 2017 年在 Improbable 公司内部发起,旨在解决 Prometheus 在大规模环境下的高可用与数据持久化问题。Thanos 采用 Sidecar 架构,在不修改 Prometheus 配置的前提下,将指标数据上传至对象存储,并通过统一的查询层实现跨 Prometheus 实例的全局视图。该项目于 2021 年正式成为 CNCF 毕业项目,被全球数千家企业用于生产环境的可观测性建设。
发展历程
| 时间 | 事件 |
|---|---|
| 2017 年 | Fabian Reinartz 和 Bartek Plotka 在 Improbable 公司内部启动 Thanos 项目,解决 Prometheus 高可用与长期存储问题 |
| 2018 年 | Thanos 在 GitHub 上开源,发布 Thanos Sidecar、Thanos Store 和 Thanos Query 核心组件 |
| 2019 年 | 发布 Thanos Compactor(压缩与降采样)和 Thanos Ruler(记录规则与告警),加入 CNCF Sandbox |
| 2020 年 | 发布 Thanos Receive(支持 Remote Write 接收),晋级 CNCF Incubating |
| 2021 年 | 正式成为 CNCF 毕业项目,被全球数千家企业用于生产监控 |
| 2023 年 | 发布 Thanos Query Frontend 优化查询性能,支持更复杂的多租户场景 |
| 2026 年 | 持续迭代,社区活跃度保持高位,成为 Prometheus 生态最流行的长期存储方案之一 |
核心产品
| 组件 | 说明 |
|---|---|
| Thanos Sidecar | 与 Prometheus 实例并行部署的 Sidecar 代理,将时间序列数据上传至对象存储并提供 Querier 接口 |
| Thanos Store | 提供对象存储中历史数据的读取接口,支持按标签和时间范围高效检索 |
| Thanos Compactor | 负责数据压缩、降采样和下采样(downsampling),降低存储成本并加速大范围查询 |
| Thanos Ruler | 独立的规则评估引擎,支持跨集群的 Prometheus 记录规则和告警规则 |
| Thanos Query | 统一查询层,聚合多个 Prometheus、Sidecar、Store 等数据源,提供全局时间序列查询 |
| Thanos Receive | 实现 Remote Write 接收器协议,支持从外部系统(如 Grafana Agent、OpenTelemetry)直接写入指标数据 |
竞争优势
- 全局查询视图:Thanos Query 统一多个 Prometheus 实例和对象存储中的数据源,提供跨集群、跨数据中心的全局指标查询能力。
- 无限长期存储:利用对象存储(如 AWS S3、GCS、MinIO)保存历史数据,不受本地磁盘限制,存储成本极低。
- 高可用架构:无单点故障设计,每个组件均可水平扩展,Prometheus 实例的故障不影响历史数据的可用性。
- 无缝集成 Prometheus:通过 Sidecar 模式工作,无需修改 Prometheus 配置或代码,现有部署可平滑升级。
- 数据降采样:Thanos Compactor 自动对历史数据进行降采样,在大时间范围查询时显著提升查询性能。
- CNCF 毕业项目:成熟的社区治理、广泛的厂商支持和活跃的贡献者生态,确保长期稳定发展。
竞争对手
Thanos 在 Prometheus 长期存储与高可用领域的主要竞争对手包括:
| 竞争对手 | 说明 |
|---|---|
| Grafana Mimir | Grafana Labs 推出的 Prometheus 兼容长期存储方案,内置水平分片和多租户支持 |
| VictoriaMetrics | 高性能指标存储与查询系统,Prometheus 兼容 API,单节点即可支持百万级样本/秒 |
| Cortex | 早期 Prometheus 长期存储方案(已弃用),功能已演进至 Grafana Mimir |
| InfluxDB | 时间序列数据库,可用于长期指标存储,但非原生 Prometheus 兼容 |
| Prometheus(独立部署) | 仅使用原生 Prometheus,适合小规模或单集群场景,缺乏全局视图和长期存储 |
| Splunk | 企业级可观测性与日志分析平台,提供指标存储和查询能力,适合大型组织 |