图上我们查询的 node_load1{prometheus="monitoring/k8s", instance="node2"} 可以看到有两条一样的序列,这是因为有两个 Prometheus 实例都在将数据远程写入到 VM 中去,要想去重可以在 vmselect 与 vmstorage 组件中配置 -dedup.minScrapeInterval 参数,多复制因子模式下默认配置了该参数的。
这是因为 VM 去重机制的问题,我们需要将 Prometheus 两个实例的共同的额外标签清理掉才可以,只需要设置 replicaExternalLabelName 属性为空即可:
remoteWrite:
- url: http://192.168.26.176:8480/insert/0/prometheus/
replicaExternalLabelName: ''
更新后 Prometheus 全局配置中就会去掉默认的 prometheus_replica 标签了:
global:
scrape_interval: 30s
scrape_timeout: 10s
evaluation_interval: 30s
external_labels:
prometheus: monitoring/k8s
还有一种远程写的时候去掉标签
remoteWrite:
- url: http://192.168.26.176:8480/insert/0/prometheus/
writeRelabelConfigs:
- action: labeldrop
regex: prometheus_replica
这个时候再去 vmui 中查看数据就已经去重了,只保留了一份数据: