监控系统解决方案Thanos与VictoriaMetrics对比研究

概述

目前主流的Prometheus长期存储及集群解决方案,包括Thanos、Cortex、VictoriaMetrics以及Grafana近期发布的Mimir,出现大一统趋势,其中以Thanos(receive模式)、Cortex、Mimir为代表的S3存储解决方案,架构、功能可以说基本一致,三者的集群结构如下:

Thanos receive模式架构

Cortex架构

 

Grafana Mimir架构

 这些解决方案共同的特性包括:

  • 支持较低成本的长期存储,支持配置数据保留时长
  • 支持水平扩容
  • 支持多租户
  • 为来自不同prometheus的数据提供集群视图
  • 高可用,可复制多份数据已应对设备宕机

仅从读写逻辑看,四种解决方案中又以VictoriaMetrics架构最为简单。本文将从读写性能、资源成本、维护成本三个角度,简单对比Thanos与VictoriaMetrics的差异与优劣。

读写性能对比

先来比对两者的读写架构:

在忽略ruler等组件的情况下,Thanos读写架构如下:

而VictoriaMetrics读写架构如下:

可以看出,由于引进了S3对象存储,Thanos组件相对较多,而VictoriaMetrics采用文件系统存储,读写架构更为简单。 

写方面看,Thanos专为Prometheus打造,而VictoriaMetrics支持的数据来源则更为丰富,包括Promethues remote write、InfluxDB、OpenTSDB、json、csv等等。在以Prometheus+exporter为基础构建的监控系统中,VictoriaMetrics可使用自有的组件vmagent(vmagent · VictoriaMetrics)替代Prometheus抓取exporter并远程写入VictoriaMetrics,相关测试显示其较Prometheus性能更佳。

存储机制方面,两者相似。Thanos receive接收到数据后,首先存入内存中,然后每两小时刷新到磁盘上并上传至对象存储,本地磁盘保留的数据时长取决于配置。VictoriaMetrics vmstorage接收数据后首先缓存在内存中,然后以每秒1次的频率刷新到磁盘中。这也意味当节点意外宕机时(不配置复制因子的情况下),Thanos丢失的数据最多可达2小时,而VictoriaMetrics则最多为几秒钟。

读方面看,当读取近期数据时,看两者都从内存和本地磁盘中直接读取,效率应当相差无几。但当读取长期大量数据时,Thanos需要通过storegateway从远程对象存储拉取数据,而VictoriaMetrics仍然是从本地磁盘拉取数据,因此VictoriaMetrics占优。

资源成本对比

Thanos采用与Prometheus完全一致的block形式存储,而VictoriaMetrics的存储形式压缩率更高。根据官方的测试结果https://valyala.medium.com/prometheus-vs-victoriametrics-benchmark-on-node-exporter-metrics-4ca29c75590ficon-default.png?t=M85Bhttps://valyala.medium.com/prometheus-vs-victoriametrics-benchmark-on-node-exporter-metrics-4ca29c75590f

 从计算资源看,两者所需的CPU资源几乎一样,Victoria所需的内存资源为Thanos/Cortex/Prometheus的1/5。

从存储资源看,Thanos所需的本地存储空间很少,大量的数据保存在成本较低的对象存储上,而VictoriaMetrics全部使用本地存储存储,尽管压缩率是Thanos的约7倍,但对于长期存储,Thanos的存储成本仍然占优。

从流量资源看,Thanos的组件receive、storegateway与对象存储之间会产生大量的网络流量,而VictoriaMetrics则多为内网流量,因此VictoriaMetrics的流量成本占优。

维护成本对比

从部署角度看,Thanos组件更多,组件间调用关系更为复杂,部署难度较VictoriaMetrics更高。两者均可以相对方便地部署于k8s中。

从扩容角度看,两者均支持不停机水平扩容,扩容难度相当。

从迁移角度看,Thanos的数据多存储在外部对象存储中,因此迁移难度较低。而VictoriaMetrics需要借助vmbackup、vmrestore工具进行停机迁移,迁移难度较大。

总结

下表为两个解决方案的对比总结:

ThanosVictoriaMetrics
读写性能
资源成本计算资源成本
存储类型对象存储仅本地磁盘
存储资源成本
网络流量成本
部署维护部署
扩容
迁移

以上表格中符号"↑"表示性能更优/成本更低/难度更低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值