Prometheus基于consul自动发现重新打标签

快来打我* 2022-11-13 01:51 412阅读 0赞

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

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

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

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

实验案例一

  1. # 添加meta信息
  2. curl -X PUT -d '{"id": "db004-hf","name": "node","address": "172.16.168.15","port": 9101,"tags": ["nodes","hf004"],"meta":{"idc":"hf"},"checks": [{"http": "http://172.16.168.15:9101/metrics", "interval": "5s"}]}' http://172.16.168.10:8500/v1/agent/service/register

在这里插入图片描述

  1. scrape_configs:
  2. - job_name: 'consul-node'
  3. consul_sd_configs:
  4. - server: '172.16.168.10:8500'
  5. tags:
  6. - "nodes"
  7. refresh_interval: 3s
  8. relabel_configs:
  9. - source_labels: [__meta_consul_tags]
  10. regex: .*hf004.*
  11. action: keep
  12. - regex: __meta_consul_service_metadata_(.+)
  13. action: labelmap

重启Prometheus后,可以看到标签自动打上了。
dsad
实验案例二

  1. scrape_configs:
  2. - job_name: 'consul-node'
  3. consul_sd_configs:
  4. - server: '172.16.168.10:8500'
  5. tags:
  6. - "nodes"
  7. refresh_interval: 3s
  8. relabel_configs:
  9. - source_labels: [__meta_consul_tags]
  10. regex: .*hf004.*
  11. action: drop
  12. - regex: __meta_consul_service_metadata_(.+)
  13. action: labelmap
  14. - job_name: 'hf-node'
  15. consul_sd_configs:
  16. - server: '172.16.168.10:8500'
  17. tags:
  18. - "nodes"
  19. refresh_interval: 3s
  20. relabel_configs:
  21. - source_labels: [__meta_consul_tags]
  22. regex: .*hf004.*
  23. action: keep
  24. - regex: __meta_consul_service_metadata_(.+)
  25. action: labelmap

在Prometheus页面查看
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,412人围观)

还没有评论,来说两句吧...

相关阅读