最新消息:

大规模环境下prometheus的扩展方向

IT技术 ipcpu 488浏览 0评论

一、概述

随着prometheus在越来越多的生产环境中推广开来,监控项series必然会越来越多,OOM时常会发生,扩容就会成为常态,单实例运行的prometheus瓶颈凸显,扩展成为大势所趋。本文来讨论下prometheus扩展的一些方向。
本文撰写于2021年3月份。技术发展迅速,请读者自行取舍。

二、发展方向

thanos
数据分片、数据查询汇总、数据查询去重、远程对象存储

Cortex
实现了远程存储接口,提供统一的存储和查询服务

Kvass
解决了采集target时的数据分片问题

VictoriaMetrics
解决了数据的分布式存储问题,但没有副本

M3DB
Uber开源的解决大规模时序数据存储问题,拥有存储分片和副本功能。

接下来我们把上面几个软件的架构图贴出来

三、Thanos

Thanos这个图够复杂,但其实主要就是sidecar组件和query组件,sidecar组件依附于prometheus,启动一个grpc接口用于查询,同时也可以向对象存储传输数据,query通过grpc协议向sidecar、storage gateway查询数据,并进行汇总和去重。
store组件用来处理云上对象存储的查询,Thanos使用TSDB的blocks存储,每个blocks块初始存储2小时长的数据,后续在长期存储中经过压缩存储时长会增大,compact组件就是用来压缩对象存储中的数据的。ruler处理报警规则的汇聚。

四、Cortex

Cortex实现了一个远程存储接口,prometheus可以通过remote write 写入。Cortex使用TSDB的chunks存储,每个chunks块存储12小时长的数据。Cortex则将index和chunks分开存储,index存储于NoSQL键值存储中如BigTable,Cassandra和DynamoDB,chunks存储于BigTable,Cassandra,DynamoDB和对象存储中。

五、Kvass

这个由腾讯云开源的软件,主要解决的是target众多,如何合理的分片的问题,分片完成后仍是由thanos query组件进行查询和去重。

六、VictoriaMetrics

VictoriaMetrics提供了一个远程存储接口,prometheus可以通过remote write 写入到VictoriaMetrics当中,VictoriaMetrics内部实现了分布式存储,但没有设计数据副本。
他的两大门神,vmselect用于汇聚查询,vminsert用于分片写入。

七、M3DB

M3DB实现了分布式存储,并且拥有数据副本。但是资料较少,国内用的人也比较少。

转载请注明:IPCPU-网络之路 » 大规模环境下prometheus的扩展方向

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址