prometheus relabel_configs


https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
relabel_configs :允许在采集之前对任何目标及其标签进行修改 重新标签的意义? • 重命名标签名 • 删除标签 • 过滤目标 action:重新标签动作 • replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组 • keep:删除regex与连接不匹配的目标 source_labels • drop:删除regex与连接匹配的目标 source_labels • labeldrop:删除regex匹配的标签 • labelkeep:删除regex不匹配的标签 • hashmod:设置target_label为modulus连接的哈希值source_labels • labelmap:匹配regex所有标签名称。然后复制匹配标签的值进行分组,replacement分组引用(${
1},${2},…)替代

 

Prometheus的Relabeling机制

在Prometheus所有的Target实例中,都包含一些默认的Metadata标签信息。可以通过Prometheus UI的Targets页面中查看这些实例的Metadata标签的内容:

 

 

默认情况下,当Prometheus加载Target实例完成后,这些Target时候都会包含一些默认的标签

  • __address__:当前Target实例的访问地址<host>:<port>
  • __scheme__:采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
  • __metrics_path__:采集目标服务访问地址的访问路径
  • __param_<name>:采集任务目标服务的中包含的请求参数

一般来说,Target以__作为前置的标签是在系统内部使用的,因此这些标签不会被写入到样本数据中。不过这里有一些例外,例如,我们会发现所有通过Prometheus采集的样本数据中都会包含一个名为instance的标签,该标签的内容对应到Target实例的__address__。 这里实际上是发生了一次标签的重写处理。

这种发生在采集样本数据之前,对Target实例的标签进行重写的机制在Prometheus被称为Relabeling。

  - job_name: 'jenkins'
    scheme: http
    basic_auth:
      username: admin
      password: Kxqv!fada2f
    static_configs:
    - targets: ['47.51.12.12:61921']
      labels:
        afasd: bj
        zcxvzx: afd

 

 

scrape_configs:
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
    relabel_configs:
    - action: replace
      source_labels: ['job']
      regex: (.*)
      replacement: $1
      target_label: idc

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM