kube-prometheus远程写入VictorialMetrics无法去重解决办法

606 阅读1分钟

node_load1

图上我们查询的 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 中查看数据就已经去重了,只保留了一份数据:

dedup