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是有状态的,可以进行横向扩展,但一般情况下不可进行纵向缩小。
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发生故障,数据也不会丢失。
当设置 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内执行去重操作,是否会误删被复制的数据呢?