【发布时间】:2022-12-17 06:31:35
【问题描述】:
我将 Prometheus 与 file_sd_configs 来源一起使用。使用这种方法可以从文件名中提取标签。例如。:
file_sd_configs:
- files:
- /etc/prometheus/targets/hostname_http_prod.yml
- /etc/prometheus/targets/hostname_http_dev.yml
relabel_configs:
- source_labels: [__meta_filepath]
regex: "/etc/prometheus/targets/hostname_http_(dev|tst|uat|prod)\\.yml"
target_label: env
我想更进一步,使用单个 Regex 填充多个目标标签。例如。
file_sd_configs:
- files:
- /etc/prometheus/targets/hostname_http_prod.yml
- /etc/prometheus/targets/hostname_http_dev.yml
- /etc/prometheus/targets/hostname_db_prod.yml
relabel_configs:
- source_labels: [__meta_filepath]
regex: "/etc/prometheus/targets/hostname_([^_]+)_(dev|tst|uat|prod)\\.yml"
target_label: type
replacement: $2
target_label: env
这是受支持的方法还是需要多次指定源和正则表达式?
【问题讨论】:
-
你知道你可以把标签放在那些文件里吗? prometheus.io/docs/guides/file-sd
-
@anemyte 是的,我知道。每个文件中有数百个目标,尽管它们按通用标签分组,但仍然有很多组。这些组中的每一个都需要定义一个相同的变量。这种方法允许我为文件中的每个目标分配一个标签。
标签: prometheus