Prometheus处理metrics标签

Prometheus处理metrics的标签


Prometheus在拉取exporter的数据之后,会对数据标签进行编辑,也允许用户通过relabel_configs对标签进行处理,包括修改、删除标签以及删除不必要的标签。

1、配置说明

相关配置具体如下:

scrape_configs: 
 - job_name: 'node'
    static_configs:
    - targets: ['47.95.32.229:9100']
    relabel_configs:
    - source_labels:  '[' <labelname> [, ...] ']'   #从target数据中现有标签中选择值,source_label的值使用separator的配置进行连接,当与regex的正则表达式匹配时,进行action中配置的动作,如:替换、保留、删除等
      separator: <string> | default = ;  #连接source_label中的多个标签,默认值是";"
      target_label: <labelname>   #目标标签,当action配置为replace时,target_label是必须的
      regex: <regex> | default = (.*) #通过正则表达式匹配提取值
      modulus: <uint64>   #获取source_labels的哈希值模数
      replacement: <string> | default = $1  #如果正则表达式匹配到值的话,则用当前值进行替换
      action: <relabel_action> | default = replace #对匹配到的标签进行的操作,

其中,<relabel_action>包含以下几种操作:

  • replace:使用replacement的值替换被regex正则匹配到source_label;
  • keep:保留被匹配到的标签的metric,删除未被匹配到标签的 metric;
  • drop:删除被匹配到的标签的metric,保留未被匹配到标签的metric;
  • hashmod:将target_label设置成source_label的modulus配置的hash值;
  • labelmap:将regex匹配到的所有标签的名称配置成新的标签,值配置成新标签的值;
  • labeldrop:将符合规则的标签删除,保留未被匹配的标签;
  • labelkeep:将符合规则的标签保留,删除未被匹配的标签。

2. 给metrics添加标签

在基于Prometheus进行监控平台的设计的过程中,通过标签对metrics进行分类,所以需要给metrics添加标签。配置举例如下:

scrape_configs:
  - job_name: 'node'
    static_configs: 
    - targets: ['localhost:9100']
    metric_relabel_configs:
    - target_label: test_key
      replacement: test_value

在去Prometheus上查看收集到的metrics:
在这里插入图片描述
可以看到该node上的metrics都增加了test_key的label,内容为指定的test_value。
(而且标签的值还可以支持中文,这什么神仙监控组件啊,我哭了o(╥﹏╥)o)
我们可以通过这种方式metrics添加自己想要的标签,更灵活的使用Prometheus的标签处理自己的监控项。

官方文档如下:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

自勉小尾巴: 多少事,从来急;天地转,光阴迫。一万年太久,只争朝夕。

发布了48 篇原创文章 · 获赞 31 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_44723434/article/details/103886782