VictoriaMetrics 提供了用于时间序列监控的 Prometheus 替代方案 MetricsQL 提供了丰富的功能列表,用于各种聚合、转换、汇总和其他针对时间序列的特定功能。 VictoriaMetrics 的联合创始人之一、用户和维护者 Roman Khavronenko 一直致力于扩展旗舰开源产品 MetricsQL ,用于时间序列数据监控解决方案。 Khavronenko表示,MetricsQL 的设计目标是: 帮助用户解决最常见的指标查询问题。 与行业标准的 Prometheus PromQL 兼容。 MetricsQL 专为查询时间序列数据而设计。它提供了丰富的功能列表,用于各种聚合、转换、汇总和其他时间序列特定功能,并且“在任何规模上使用仍然简单高效”,Khavronenko 说。 Khavronenko 指出,Prometheus 无法很好地处理每秒应用程序处理请求数的功能,而 MetricsQL 正是为此而设计的。
但是,它还引入了 PromQL 的扩展,称为MetricsQL。MetricsQL 旨在增强 PromQL 提供的查询功能。它引入了新函数、运算符和语法糖。 MetricsQL MetricsQL 是 VictoriaMetrics 开发的 PromQL 的扩展,旨在增强查询功能并提供更加用户友好的方法来处理时间序列数据。 MetricsQL 引入了新函数、改进和语法糖来简化查询过程。例如,它提供了使用多个范围向量、使用字符串值和聚合数据的方法。 虽然 MetricsQL 保留了 PromQL 的强大功能和表现力,但它致力于使复杂的查询更易于编写和理解。 MetricsQL 和 PromQL API:这些 API 用于查询 VictoriaMetrics 中存储的指标数据。
2.2 兼容性 + 增强的 MetricsQL解决 Prometheus 高并发查询的瓶颈,因为兼容,所以直查 VM 与查询 Promethues 客端毫无差别,唯一的差别就是更快。 此外,除了 100% 兼容的PromQL,VM 还提供了增强的 MetricsQL。2.3 低内存更低的内存占用,官方对比 Prometheus,可以释放7倍左右内存空间(线上对比大概4倍)。
特性 与 VictoriaMetrics TSDB 集成 VictoriaMetrics MetricsQL 支持和表达式验证 Prometheus 告警规则定义格式支持 与 Alertmanager 在重启时可以保持报警状态 Graphite 数据源可用于警报和记录规则 支持记录和报警规则重放 非常轻量级,没有额外的依赖 要开始使用 vmalert,需要满足以下条件: 报警规则列表:要执行的 PromQL/MetricsQL
如果要保留更长时间的数据,需要把数据写到远端存储中去 当使用grafana时,可以把其数据源prometheus可以被替换为vm,因为vm也支持prometheus查询APi 它实现了基于PromQL的查询语言,即MetricsQL
VictoriaMetrics 优点 远程存储:可作为单一或多个Prometheus的远程存储 安装简单:单节点架构一条命令就可以部署完毕(集群方式稍微复杂一些,但也很好理解) 兼容性:PromQL兼容和增强的MetricsQL
在系统中一次查询主要经历以下几个阶段:首先是 PromQL 的 Parser 和 Optimizer,这里直接使用了开源 MetricsQL,相比 Promethues 原生的 PromQL,它具有更多的拓展能力 在下表中我们将简述 MetricsQL 和 FLux 的区别。如果最初选用 Flux 作为前后端的查询协议,可以在发起查询时让用户自定义这些函数,在发起时直接提交。 资源消耗控制 MetricsQL
可以使用vmbackup / vmrestore工具轻松快速地从即时快照备份到 S3 或 GCS 它实现了基于 PromQL 的查询语言 MetricsQL,在 PromQL 之上提供了改进的功能 它提供全局查询视图
VictoriaMetrics:引入了MetricsQL,受到PromQL的启发,并且向后兼容PromQL。
vm是支持基于PromeQL的MetricsQL的,也能够作为grafana的数据源。
它实现了类似 PromQL 的查询语言 - MetricsQL,它在 PromQL 之上提供了改进的功能。 它提供全局查询视图。
如下,替换<victoriametrics-addr> 为VictoriaMetrics主机名称或者IP地址,形如http://192.168.55.88.132:8428,然后使用PromQL 或MetricsQL