VictoriaMetrics的架构

我要介绍一个在业务中接触过的开源软件,叫做VictoraiMetrics。

VictoraiMetrics是什么?

在以前介绍Cortex架构时,我们提到了Prometheus Server的HA配置存在的问题。VictoriaMetrics也是一款可以实现Prometheus Server的HA配置的开源软件。它可以通过从Prometheus Server的远程写入功能中获取指标,并将其保存到存储中。

VictoriaMetrics主要由以下组件组成。

    • vminsert

Prometheus Serverからメトリクス取得する

vmstorage

メトリクスを保存するストレージ

vmselect

Grafana等からメトリクスを問い合わせる

构成

在以下这样的配置中使用VictoriaMetrics。
负载均衡也可以通过k8s服务实现。
由于vmselect / vminsert是过时的,因此可以同时进行横向扩展和纵向缩小。
另一方面,虽然vmstorage是有状态的,可以进行横向扩展,但一般情况下不可进行纵向缩小。

image.png

VictoriaMetrics的功能

多租户 (duō zū hù)

根据VictoraiMetrics的URL格式,可以设置accountID / projectID。

例如,如果要明确区分prometheus-server-0和prometheus-server-1的指标,您可以通过设置不同的accountID来分开这些指标。
accountID和projectID是以accountID:projectID的组合形式使用的。
(如果未指定projectID,默认为0)

在使用Prometheus Server的remote write保存账户ID为0、项目ID为0的指标时,URL将如下所示。

http://<vminsert>:8480/insert/0/prometheus

如果要从vmselect查询账户ID:0 / 项目ID:0的指标,请使用以下URL。

http://<vmselect>:8481/select/0/prometheus/query

复制

当在vminsert中设置参数-replicationFactor时,将启用数据复制功能。
当在3台vmstorage上设置-replicationFactor=2时,指标A和指标B将分别复制到不同的vmstorage上。
即使一台vmstorage发生故障,数据也不会丢失。

image.png

当设置 replicationFactor=3 时,会将所有 vmstorage 的指标复制到其他存储设备上。
(当然,在这种情况下,只有当 vmstorage 出现故障不超过两台时,才不会发生数据丢失)
作为权衡,可能会增加负载、增加存储使用量以及增加磁盘的I/O等。

如果使用此功能,您需要在vmselect中设置-dedup.minScrapeInterval=1ms并进行去重操作。

去重

在vmstorage内,您可以使用重複排除功能。
先前提到了vmselect中的重複排除以及vmstorage中的重複排除,本章将介绍后者的重複排除。

由于对复制机制和矛盾部分感到不满,个人在使用上并不采用这个功能。因此,对它的介绍也很简单。

使用dedup.minScrapeInterval参数进行去重处理。将排除重复的对象设定为在Prometheus Server的external_labels中设置的相同标签。

(附赠)备份

可以使用vmbackup进行备份。

总结

有一个叫做VictoraiMetrics的工具!!
与Cortex / Thanos相比,它具有简单的架构,可以实现Prometheus服务器的冗余。

请问有什么问题吗?

如果同时在复制和vmstorage内执行去重操作,是否会误删被复制的数据呢?

广告
将在 10 秒后关闭
bannerAds