VictoriaMetrics 1.80版本中值得关注的新特性

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


change log请看:https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.80.0

1. VictoriaMetrics/metrics上报SDK支持push模式

这个是我期待已久的功能。
原本这个简单高效的上报端sdk只是提供了一个exporter,等着部署vm-agent来抓取数据。
现在好了,初始化API的时候,制定vm-insert的地址,就可以直接PUSH过去,vm-agent都省了。

同时,VM的各个组件,也支持配置push自身监控数据的地址了:see https://docs.victoriametrics.com/#push-metrics

2. MetricQL中的并行查询能力增强

我大约在3周前提了两个问题:

  1. 类似 a / b 这样的表达式执行,是可以并行的,之前是串行执行;
  2. vm-storage中,每个storage节点返回查询的数据,只有一个协程。
    VM团队对我提出的第一个问题进行了优化,后续对于相互不依赖的表达式可以并行计算,理论上延迟最高可以提升50%。
    vm-storage层面的并行没有提及,后续需要通过阅读源码来验证。

3.vm-select改善了大查询的工作调度算法,改善了大查询的计算性能

之前的做法是,把vm-storage返回的结果,均匀的分给了多个vm-select上的计算协程。这样可以平摊压力,减少总体的计算时延。
但是,当返回数据非常多的时候,平摊本身的资源消耗太大。这个版本针对这种情况做了优化。

4. vm-storage的新metric写入性能提升了50%

这个特性居然是源于我在4月提出的改进意见:vm-storage中写入数据的时候,先写入内存的block,然后变成只读的inmemoryPart,最后把多个内存part进行merge,然后写入磁盘。
这个过程中做了多次encode/decode的工作,非常繁琐。
这次写性能提升应该就是直接了当的把内存block写入到磁盘,去掉了无效的步骤。
see: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2249

P.S 这个版本居然把我列为了贡献者,嗨森。

posted on 2022-08-14 16:32  ahfuzhang  阅读(248)  评论(0编辑  收藏  举报