概述
Thanos 是一组组件,可以组合成具有无限存储容量的高可用度量系统,可以无缝添加到现有 Prometheus 部署之上。
Thanos 利用 Prometheus 2.0 存储格式高效地将历史指标数据存储在任何对象存储中,同时保持快速查询延迟。 此外还提供了所有 Prometheus 安装的全局查询视图,并且可以动态合并来自 Prometheus HA 对的数据。该项目的具体目标是:
- 指标的全局查询视图。
- 无限保留指标。
- 组件的高可用性,包括 Prometheus。
架构
- Sidecar: 连接到Prometheus,为Thanos Query提供查询数据,将其上传到云对象存储
- Store Gateway:在云存储桶内提供指标,作为对象存储暴露的网关
- Compactor:对存储在云存储桶中的数据进行压缩、下采样和应用保留。
- Receiver:从Prometheus远程写入WAL端接收数据,将其公开和/或将其上传到云存储
- Ruler/Rule:针对 Thanos 中的数据评估记录和警报规则以进行展示和/或上传
- Querier/Query:实现 Prometheus 的 v1 API 来聚合来自底层组件的数据
- Query Frontend:实现 Prometheus 的 v1 API 将其代理到 Query,同时缓存响应并按查询天数进行可选拆分
参考:
Thanos - Highly available Prometheus setup with long term storage capabilities
https://github.com/thanos-io/thanos
Learn Thanos using Interactive Browser-Based Labs | Katacoda
Metric monitoring architecture at Improbable using Thanos - Improbable