从自定义K8s Prometheus导出器中删除默认var

时间:2020-08-20 18:55:03

标签: kubernetes prometheus grafana prometheus-node-exporter

我开始与自定义出口商(使用kubernetes,grafana和prometheus)玩,但遇到了问题。我设法正确地显示了指标,但是每次我杀死发送它们的吊舱时,var都会发生变化,并且grafana会绘制不同的颜色(例如新信息)。

有什么办法只能将app保持为var,我认为问题出在变化的var(pod名称和ip)?

MyMetric{app="prometheus-export-mymetric",instance="172.26.32.69:3000",job="kubernetes-pods",kubernetes_namespace="default",kubernetes_pod_name="prometheus-export-mymetric-66694564b8-r4pqc",pod_template_hash="66694564b8"}

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用在重新部署后保持不变的pod标签,而不是kubernetes_pod_name。

在prometheus配置中,我们使用的是这样的东西:

 - job_name: kubernetes-pods
  honor_timestamps: true
  scrape_interval: 15s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    separator: ;
    regex: "true"
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
    separator: ;
    regex: (.+)
    target_label: __metrics_path__
    replacement: $1
    action: replace
  - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    separator: ;
    regex: ([^:]+)(?::\d+)?;(\d+)
    target_label: __address__
    replacement: $1:$2
    action: replace
  - separator: ;
    regex: __meta_kubernetes_pod_label_(.+)
    replacement: $1
    action: labelmap
  - source_labels: [__meta_kubernetes_namespace]
    separator: ;
    regex: (.*)
    target_label: kubernetes_namespace
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_pod_name]
    separator: ;
    regex: (.*)
    target_label: kubernetes_pod_name
    replacement: $1
    action: replace