prometheus的relabel_config
Relabeling是一个强大的工具,它在对target进行scrape前起作用,用来对label进行重写。
注意:Relabeling在对target进行抓取前起作用
一些特殊的label:
job被设置为job_name的值__address__的值被设置为<host>:<port>instance在Relabeling之后被默认设置为__address__的值(如果没有被设置值的话)__scheme__设置为scheme配置的值__metrics_path__设置为metrics_path配置的值__param_<name>为scrape_config中配置的url参数name对应的值__scrape_interval__设置为scrape_interval__scrape_timeout__设置为scrape_timeout- 以
__meta_开头的标签可能是由服务发现机制设置的 - 如果需要暂时保存标签值,以
__tmp作为标签开头 - 以
__开头的标签会在Relabeling后被删除
格式说明:
# 设置来源label,将这些label的value进行拼接,分隔符通过separator指定。
[ source_labels: '[' <labelname> [, ...] ']' ]
# 分隔符
[ separator: <string> | default = ; ]
# 目标标签。
[ target_label: <labelname> ]
# 正则表达式
[ regex: <regex> | default = (.*) ]
# 模数,主要用于prometheus的水平分片
[ modulus: <int> ]
# 正则表达式捕获的分组,默认为第一个 $1
[ replacement: <string> | default = $1 ]
# 执行的动作,可选的值有:replace, keep, drop, labelmap,labeldrop, labelkeep
[ action: <relabel_action> | default = replace ]
relabel_action说明:
-
replace
- 用正则表达式regex匹配source_labels拼接的字符串
- 用正则匹配结果替换replacement中的${1},${2},...
- 将target_label的value设置为替换后的replacement
如果regex不匹配,则不会发生替换。
-
lowercase
将source_labels拼接的字符串映射为小写字符串
-
uppercase
将source_labels拼接的字符串映射为大写字符串
-
keep
抛弃一些target,这些target的source_labels不匹配regex,换句话说,只保留source_labels匹配regex的target
-
drop
抛弃一些target,这些target的source_labels匹配regex
-
keepequal
保留source_labels和target_label一样的target
-
dropequal
抛弃source_labels和target_label不一样的target
-
hashmod
对source_labels的hash值取模后赋值给target_label,模数为modulus
-
labelmap
- 起作用的labels:source_labels,以及label name能被regex匹配
- 替换replacement中的${1},${2}...
- 将第一步中label对应的值,设置到名为replacement的label中
-
labeldrop
用regex匹配所有的标签名,被匹配的标签将被删除
-
labelkeep
用regex匹配所有的标签名,不匹配的标签将被删除

浙公网安备 33010602011771号