在 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获取更多详细信息。