VictoriaMetrics如何支持Multi Retention
场景:
实现Multi Retention Setup within VictoriaMetrics Cluster,使得为不同的监控数据采用不同的保存时间
Multi Retention实现方式
方式:
VictoriaMetrics 的社区版本通过 -retentionPeriod 命令行标志仅支持每个 vmstorage 节点一个保留期。多保留设置可以通过将VictoriaMetrics集群划分为具有不同保留的逻辑组来实现。
示例:
设置应处理 3 个不同的保留组(3 个月、1 年和 3 年)。解决方案包含 3 组 vmstorages + vminsert 和一组 vmselect。路由由 vmagent 和重新标记配置完成。 -retentionPeriod 设置保留指标的时间。
原理图:
实施细节:
-
vminserts A 组仅了解 vmstorages A,并且这是通过 -storageNode 配置显式指定的。
-
vminserts B 组仅了解 vmstorages B,并且这是通过 -storageNode 配置显式指定的。
-
vminserts C 组仅了解 vmstorages A,并且这是通过 -storageNode 配置显式指定的。
-
vmselect 通过 -storageNode 配置从所有 vmstorage 节点读取数据。
-
Vmagent 使用 -remoteWrite.urlRelabelConfig 配置中指定的重新标记规则将传入指标路由到给定的 vminsert 节点集。
VictoriaMetrics企业版则直接使用:Retention filters
VictoriaMetrics Enterprise-retentionFilter支持通过将命令行标志传递给节点来为不同的时间序列集配置多个保留vmstorage
例如,以下配置将从开始的租户的保留期设置为 1 天,然后将带有标签或来自任何租户的时间序列的保留期设置为 3 天,而其余租户将保留 4 周:accountID42env="dev"env=“prod”
-retentionFilter=‘{vm_account_id=~“42.*”}:1d’ -retentionFilter=‘{env=~“dev|staging”}:3d’ -retentionPeriod=4w
可以将真实标签上的过滤器与伪标签上的过滤器混合vm_account_id使用vm_project_id。例如,以下配置将带有来自租户的env="dev"标签的时间序列的保留期设置为 5 天: accountID=5
-retentionFilter=‘{vm_account_id=“5”,env=“dev”}:5d’