Prometheus 如何给某个 Target 添加专属标签?

在 static_configs 中按 targets 分组配置 labels 即可给特定 target 加专属标签;服务发现场景用 relabel_configs 从元数据标签生成。本文给出两种方式的配置示例。

最佳实践
Prometheus 如何给某个 Target 添加专属标签?封面

最直观的方式:static_configs 里把该 target 单独列为一个块,块内的 labels 就是它的专属标签,会附加到从这个 target 采到的所有指标上。

static_configs 分组加标签

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['10.0.0.1:9100']
        labels:
          datacenter: 'bj-01'
          role: 'db'
      - targets: ['10.0.0.2:9100']
        labels:
          datacenter: 'sh-01'
          role: 'cache'

两组 target 共享 job 的其他配置(路径、间隔),但各自带不同标签。

服务发现场景:relabel 生成标签

K8s/Consul 等动态发现的目标没有 static_configs 可写,用 relabel 从元数据生成:

relabel_configs:
  - source_labels: [__meta_kubernetes_namespace]
    target_label: namespace
  - source_labels: [__meta_kubernetes_pod_name]
    target_label: pod

注意事项

  • 标签加在采集侧意味着换标签值=换序列,历史数据不会自动关联;
  • 专属标签克制使用——每个独特标签组合都是新时序,别把 IP、时间戳这类易变值做成标签;
  • 事后补救可用 metric_relabel_configs(抓取后改写指标标签)。

观测云对照

观测云 DataKit 的每个采集器配置都支持自定义 tags 字段,效果相同;在观测云控制台还能给主机/对象批量打标签用于分组筛选。

常见问题(FAQ)

Q:同 job 下所有 target 共用标签怎么写? 在 job 级 labels(honor_labels 场景)或每组 static_configs 重复写。

Q:加的标签和指标自带标签冲突怎么办? 默认抓取侧标签优先(honor_labels: false 时重命名指标侧为 exported_xxx)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台