3.prometheus标签的使用

一、概述标签Label的使用

通过重新标记,你可以控制、管理并标准化环境中的指标。
重新标记操作一般常见的情况:1. 删除不必要的指标。2. 从指标中删除敏感或不需要的标签。3. 添加、编辑或者修改指标的标签值或者标签格式。
 
prometheus 从数据源拉取数据后,会对原始数据进行编辑;其中 metric_relabel_configs 是 prometheus 在保存数据前的最后一步标签重新编辑。
所以,哪怕你将 metric_relabel_configs 模块放在 job_name 模块的最前端,prometheus 解析编辑文件后,也会将 metric_relabel_configs 放在最后。
metric_relabel_configs 模块和 relabel_config 模块很相似。metric_relabel_configs 一个很常用的用途:将监控不需要的数据,直接丢掉,不在prometheus 中保存。
 
标签的重命名可以在两个阶段修改:1、重新标记来自服务发现的目标,即在scape之前 --- relabel_configs;2、scape之后但在保存到存储系统之前 --- metric_relabel_configs。

二、metric_relabel_configs

1、删除不必要的指标(metric):

    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'node_network_receive.*'
      action: drop
更新配置后,在prometheus的搜索框内找不到该关键字开头的metric
 
注:多个标签通过分隔符连接在一起,默认分隔符为“;”,也可以使用separator参数覆盖分隔符配置。
action中drop操作,这将在数据存储之前删除指标。其他操作(如keep)则会保留与正则表达式匹配的指标。并删除所有其他指标。

2、更换标签:实际上是根据已有标签,生成一个新的标签

许多cAdvison指标都有一个id标签,其中包含正在运行的进程的名称。如果将进程id重新定义一个标签,放入container_id。
未更换之前:
- job_name: 'CAdvisor'
    static_configs:
    - targets: ['192.168.42.133:8181']
    metric_relabel_configs:
    - source_labels: [id]
      regex: '/.*'
      replacement: '1234'
      target_label: container_id
    - source_labels: [job]
      regex: 'CAdvisor.*'
      replacement: 'myCAdvisor'
      target_label: myjob
更改配置之后:

3、删除标签

例,删除CAdvisor job中的id标签
  - job_name: 'CAdvisor'
    static_configs:
    - targets: ['192.168.42.133:8181']
    metric_relabel_configs:
    - source_labels: [id]
      regex: '/.*'
      replacement: '1234'
      target_label: container_id
    - source_labels: [job]
      regex: 'CAdvisor.*'
      replacement: 'myCAdvisor'
      target_label: myjob
    - regex: 'id.*'
      action: labeldrop
删除之后对比:

三、总结

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},…)替代
 
 
Tips:promtool check config prometheus.yml #检查配置文件语法
posted @ 2020-02-06 17:33  _幸会  阅读(1162)  评论(0编辑  收藏  举报