Thanos
官方架构图
 
sidecar模式

增加query-frontend组件
receiver模式
 
 
https://github.com/thanos-io/kube-thanos/tree/master/examples/all/manifests
 
Thanos Query: 实现了Prometheus API,将来自下游组件提供的数据进行聚合最终返回给查询数据的 client (如 grafana)
Thanos Sidecar: 连接 Prometheus,将其数据提供给 Thanos Query 查询,或者将其上传到对象存储,以供长期存储Thanos Store Gateway: 将对象存储的数据暴露给 Thanos Query 去查询Thanos Ruler: 对监控数据进行评估和告警,还可以计算出新的监控数据,将这些新数据提供给 Thanos Query 查询并且/或者上传到对象存储,以供长期存储Thanos Compact: 将对象存储中的数据进行压缩和降低采样率,加速大时间区间监控数据查询的速度Thanos Bucket:检查对象存储中数据的命令,通常作为独立命令运行并帮助我们进行故障排查,支持通过Web UI 查看目前Buket的数量Thanos Check:通过Thanos check 可以检查和验证Pormetheus Rules 是否正确
 
- Sidecar: 每个 Prometheus 实例都包含一个 Sidecar,它与 Prometheus 实例运行在同一个 Pod 中。它有两个作用:1) 将本地超过 2 小时的监控数据上传到对象存储,如 Amazon S3 或 Google 云存储。2) 将本地监控数据(小于 2 小时)提供给 Thanos Query 查询。
- Store Gateway : 将对象存储的数据提供给 Thanos Query 查询。
- Query : 实现了 Prometheus 的查询 API[8],将 Sidecar 和对象存储提供的数据进行聚合最终返回给查询数据的客户端(如 Grafana)。
- Compact : 默认情况下,Sidecar 以 2 小时为单位将监控数据上传到对象存储中。Compactor会逐渐将这些数据块合并成更大的数据块,以提高查询效率,减少所需的存储大小。
- Ruler : 通过查询 Query获取全局数据,然后对监控数据评估记录规则[11]和告警规则,决定是否发起告警。还可以根据规则配置计算新指标并存储,同时也通过 Store API 将数据暴露给Query,同样还可以将数据上传到对象存储以供长期保存。由于Query和底层组件的可靠性较低,Ruler 组件通常故障率较高[12]: Ruler 组件在架构上做了一些权衡取舍,强依赖查询的可靠性,这可能对大多数场景都不利。对于 Prometheus 来说,都是直接从本地读取告警规则和记录规则,所以不太可能出现失败的情况。而对于Ruler来说,规则的读取来源是分布式的,最有可能直接查询 Thanos Query,而 Thanos Query 是从远程 Store APIs 获取数据的,所以就有可能遇到查询失败的情况。
- Receiver : 这是一个实验性组件,适配了 Prometheus 的 remote write API,也就是所有 Prometheus 实例可以实时将数据 push 到 - Receiver
 
 metrics
 thanos sidecar
 http://0.0.0.0:10902/metrics
 prometheus
 http://0.0.0.0:9090/metrics
 
 thanos compact
 http://0.0.0.0:10902/metrics
 
 thanos query
 http://0.0.0.0:9090/metrics
 
 thanos rule
 http://0.0.0.0:10902/metrics
 
 thano store
 http://0.0.0.0:10902/metrics
 
 S3
 thanos sidecar
 thanos compact
 thanos rule
 thanos store
 
 Thanos multi cluster 
  
 
 
 
                         
                                

