01
简介
VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库。
谈到VictoriaMetrics就必须要提到Prometheus,VictoriaMetrics是一个新兴的监控解决方案。它借助Prometheus强大的exporter生态、成熟的规范、服务发现等优点等,融入到Prometheus生态中。VictoriaMetrics官网很多兼容Prometheus参数解释都是直接跳转到Prometheus官网。
VictoriaMetrics可以作为Prometheus的长期远程存储方案,当然VictoriaMetrics也可以完全取代Prometheus,因为VictoriaMetrics基本支持Prometheus配置文件、PromQL、各类API、数据格式等等。
作为一款新兴TSDB,参考DB-Engines的TSDB排行,最近两年VictoriaMetrics热度很高:
注意:下面无特殊声明统一把VictoriaMetrics简写成VM。
1.1 VM优点
远程存储:可作为单一或多个Prometheus的远程存储
安装简单:单节点架构一条命令就可以部署完毕(集群方式稍微复杂一些,但也很好理解)
兼容性:PromQL兼容和增强的MetricsQL
Grafana兼容:VM可替换Grafana的Prometheus数据源(经测试,线上数据源直接替换后100%兼容)
低内存:更低的内存占用,官方对比Prometheus,可以释放7倍左右内存空间(线上对比大概4倍)
高压缩比:提供存储数据高压缩,官方说可以比Prometheus减少7倍的存储空间(线上对比大概是4~5倍)
高性能:查询性能比Prometheus更快
支持水平扩容&HA:基于VM集群版实现
支持多租户:主要针对集群版
1.2 VM缺点
图形化做的不好,虽然有vmui,但功能很少
告警功能需要单独配置vmalert,而且vmalert只有api管理和查看,暂时没用图形界面
没有类似Prometheus的WAL日志,突然故障可能会丢失部分数据
1.3 VM分类
VM分为,单节点(single-node)版和集群(cluster)版,两套方案,根据业务需求选择即可。
单节点版:直接运行一个二进制文件,既可以运行,官方建议采集数据点(data points)低于100w/s,推荐VM单节点版,简单好维护,但不支持告警。
集群版:支持数据水平拆分,把功能拆分为vmstorage、 vminsert、vmselect,如果要替换Prometheus,还需要vmagent、vmalert。
1.4 官方网址
官网:https://victoriametrics.com
官方文档:https://docs.victoriametrics.com
GitHub:https://github.com/VictoriaMetrics/VictoriaMetrics
1.5 部分名词解释
1)关于样本:
在时间序列(time-series)中的每一个点称为一个样本(sample),样本(sample)由以下三部分组成:
指标(metric):指标名和一组描述当前样本特征的labelsets唯一标识
时间戳(timestamp):一个精确的时间戳,一般由采集时间决定(VM为秒,Prometheus为毫秒)
样本值(value):当前样本的值
2)关于target:
每一个监控目标称为一个target,如:单个node-exporter、mysqld-exporter等等。
02
案例
下面列出部分官方案例,主要针对写和查,以供参考。
使用方 |
VM版本 |
写入数据点量 |
总数据量 |
99%查询耗时 |
Synthesio |
单节点版 |
55万/秒 |
1.25万亿 |
147ms |
Wix.com |
单节点版 |
110万/秒 |
8.5万亿 |
1seconds |
German |