在 Prometheus 的 relabel_config 中为指标添加自定义标签

通过设置relabel_configs和metric_relabel_configs,可以为指标附加任意标签,例如 example_metric{自定义标签名=”自定义值”}。

    - job_name: 'hoge-service-discovery'

      # 何らかの***_configsとか***_sd_configs
      # 例としてkubernetes_sd_configsにしています
      kubernetes_sd_configs:

      # 例としてkubernetesのノード(マシン)をsd(service discovery)します
      - role: node

      # ここからオレオレなラベルを付与していきます
      relabel_configs:

      # 例 1 : ラベル名をオレオレにする
      # kubernetesのノード名に対して、
      - source_labels: [__meta_kubernetes_node_name]
        replacement: $1
        # オレオレなラベル名をmy_node_name_1としてみる
        # my_node_name_1="kubernetesのノード名" というラベルがメトリクスに付与される
        target_label: my_node_name_1

      # 例 2 : 値の方もオレオレに加工してみる
      - source_labels: [__meta_kubernetes_node_name]
        # 値を加工できる。
        # ここでは接頭辞(my-node-name-is-)を付けてオレオレな値にしてみる。
        replacement: my-node-name-is-$1
        # my_node_name_2="my-node-name-is-ノード名" というラベルがメトリクスに付与される
        target_label: my_node_name_2

      # 例 3 : ラベル名も値も完全オレオレにする
      - source_labels: [__meta_kubernetes_node_name]
        # $1を使ってないので完全に別の文字列に置き換わる。
        replacement: hoge-huga-hage
        # hoge_huga_hage_3="hoge-huga-hage" というラベルがメトリクスに付与される
        target_label: hoge_huga_hage_3

      # 例 4 : 例3と同様。
      # ***_configsや***_sd_configsに用意されていない文字列でも良いらしい。
      - source_labels: ["hoge"]
        # 結局この指定で完全に別の文字列に置き換えるのでsource_labelsは何でもいいということかと理解している。
        replacement: hoge-huga-hage
        # 例3と同様、hoge_huga_hage_4="hoge-huga-hage" というラベルがメトリクスに付与される
        target_label: hoge_huga_hage_4


      # metric_relabel_configsでも同様。
      # relabel_configsとの違いは、metric_relabel_configsの場合、
      # source_labelsには、***_configsや***_sd_configsに用意されているメタタグでなく、
      # メトリクス提供元が付与したラベル名を指定できること
      metric_relabel_configs:

        # 例 5 : これまでの例と同様です。
        # メトリクス提供元(kubernetesの場合はcAdvisor等)が付与したラベル名を指定できる
        # 例えばname="コンテナ名"というラベルがcAdvisorから付与されている場合
      - source_labels: ["name"]
        # 加工してみる
        replacement: my-container-name-is-$1
        # my_container_name="my-container-name-is-コンテナ名" というラベルがメトリクスに付与される
        target_label:  my_container_name

在这里,对于发现的所有目标的指标,我们附加了自定义标签,但也可以通过使用正则表达式等指定,仅在特定条件下附加标签。请参考配置 | Prometheus获取更多详细信息。

广告
将在 10 秒后关闭
bannerAds