Prometheus 自带的时序数据库不支持集群模式,难以承接海量的时序数据。RemoteRead 和 RemoteWrite 机制,主要解决了数据的存放问题,海量数据的查询依然是严重的瓶颈。
VictoriaMetrics 实现了 Prometheus 数据的汇聚、转储、查询,支持 PromQL。
日本游戏公司 colopl 在 2020年1月15日分享了实践经验,考察 Cortex、thanos、m3db、Victoria Metrics 之后,选用了 Victoria Metrics。
colopl 表示:
cortex过于复杂,没有正式 release;
使用 thanos,prometheus 通过 thanos 进行 remote read 内存开销增加1倍,oom;
m3db 复杂,学习、管理成本高。
2020年1月15日用日语分享的:
youtube 视频:Large-scale, super-load system monitoring platform built with VictoriaMetrics
PPT:monitoring-platform-with-victoria-metrics
一台 Prometheus 承载 8000 Pod 时,运转正常:
VictoriaMetrics 能够承接 1 万 Pod:
VictoriaMetrics 的系统架构如下:
VictoriaMetrics 的使用方法见后续文章:VictoriaMetrics源码阅读-水平扩展的实现方法。
Cortex 基于 Prometheus 实现,支持水平扩展、支持 PromQL,CNCF 沙盒项目。
Thanos 实现了 Prometheus 数据的汇聚、转储、查询,支持 Prometheus’ v1 API,CNCF 沙盒项目。
M3DB 是 Uber 开源的分布式时间序列数据库。