You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为prometheus-node-exporter采集的指标添加自定义标签

为Prometheus Node-Exporter指标添加节点自定义标签

方法一:修改Prometheus的Scrape配置

从你提供的指标标签来看,采集job为kubernetes-service-endpoints,直接在Prometheus的scrape_configs中针对该job添加relabel规则,利用Kubernetes自动注入的节点元标签(前缀为__meta_kubernetes_node_label_)提取节点标签:

scrape_configs:
- job_name: 'kubernetes-service-endpoints'
  # 保留原有配置...
  relabel_configs:
    # 新增规则:将节点上的my_task标签映射为custom_label_from_node
    - source_labels: [__meta_kubernetes_node_label_my_task]
      action: replace
      target_label: custom_label_from_node
    # 可选:批量导入所有节点标签(自动添加node_前缀)
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)
      replacement: node_$1

注意:先通过kubectl get nodes --show-labels确认目标节点确实带有my_task标签,Prometheus才能通过元标签获取到该值。

方法二:Helm部署场景下的配置调整

如果是用Helm安装的Prometheus,直接修改values.yaml中的对应配置:

方式1:追加到Prometheus的额外采集配置

prometheus:
  prometheusSpec:
    additionalScrapeConfigs:
    - job_name: 'kubernetes-service-endpoints'
      relabel_configs:
        - source_labels: [__meta_kubernetes_node_label_my_task]
          action: replace
          target_label: custom_label_from_node

方式2:针对Node-Exporter单独配置

nodeExporter:
  prometheus:
    relabelings:
      - source_labels: [__meta_kubernetes_node_label_my_task]
        action: replace
        target_label: custom_label_from_node

关键排查点

  • 确认节点标签存在:执行kubectl get nodes <节点IP对应的节点名> --show-labels,检查my_task标签是否存在
  • 检查服务发现元标签:在Prometheus UI的「Service Discovery」页面,找到node-exporter实例,查看是否有__meta_kubernetes_node_label_my_task元标签
  • 确保relabel规则放在对应job的配置块下,而非全局配置

内容的提问来源于stack exchange,提问作者Sam Comber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:25:12