Prometheus-5:relabel标签重新打标
Prometheus relabel重新打标
- job的标签设定为其所属job_name的值;
- __address__标签的值为该target的套接字地址“:”
- instance标签的值为__address__的值
- __scheme__标签的值为抓取该target上指标时使用的协议(http或https)
- __metrics_path__标签的值为抓取该target指标时使用的URL路径,默认为/metrics
- __param_标签的值为传递的URL参数中第一个名称为的参数的值
relabel_config
# source_labels从指定标签中匹配值。并将值串联
# 使用配置的分隔符并与配置的正则表达式匹配
# 用于替换、保留和丢弃操作。
[ source_labels: '[' <labelname> [, ...] ']' ]
# 串联源标签值之间的分隔符,默认;
[ separator: <string> | default = ; ]
# 在替换操作中将结果值写入的标签。
# 对于替换操作,它是强制性的。Regex捕获组可用。
[ target_label: <labelname> ]
# 与提取值匹配的正则表达式。
# 当actions等于replace, keep, drop, labelmap,labeldrop and labelkeep时使用
[ regex: <regex> | default = (.*) ]
# 获取源标签值的哈希值的模数。
[ modulus: <int> ]
# 如果正则表达式匹配,则对其执行正则表达式替换的替换值。
[ replacement: <string> | default = $1 ]
# 基于正则表达式匹配要执行的操作。
[ action: <relabel_action> | default = replace ]
<relabel_action>字段用于定义重新标记的行为,其可用取值有:
1. 替换标签值
- replace:首先将source_labels中指定的各标签的值进行串联,而后将regex字段中的正则表达式对源标签值进行匹配判定,若匹配,则将target_label字段中指定的标签的值替换为replacement字段中保存的值
- replacement可按需引用保存regex中的某个“分组模式”匹配到的值;默认保存整个regex匹配到的内容
- 进行值替换时,replacement字段中指定标签的值也支持以分组格式进行引用
- hashmod:将target_label的值设置为一个hash值,该hash则由modules字段指定的hash模块对source_labels上各标签的串联值进行hash计算
2. 删除指标:该处的每个指标名称对应一个target
- keep:regex不能匹配到target上的source_labels上的各标签的串联值时,则删除该target
- drop:regex能够匹配到target上的source_labels上的各标签的串联值时,则删除该target
3. 创建或删除标签
- labelmap:将regex对所有的标签名进行匹配判定,而后将匹配到的标签的值赋给replacement字段指定的标签名之上,通常用于取出匹配的标签名的一部分生成新标签
- labeldrop:将regex对所有的标签名进行匹配判定,能够匹配到的标签将从target的标签集中删除
- labelkeep:将regex对所有的标签名进行匹配判定,不能够匹配到的标签将从target的标签集中删除
relabel示例之replace

- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
relabel_configs:
- source_labels:
- __scheme__
- __address__
- __metrics_path__
regex: (http|https)(.*)
separator: ""
target_label: endpoint
replacement: ${1}://${2}
action: replace
curl -XPOST monitor.example.com:9090/-/reload

relabel示例之labelmap

- regex: (__meta_consul_service_)(.*)
replacement: node_${2}
action: labelmap
curl -XPOST monitor.example.com:9090/-/reload

relabel示例之labeldrop
- regex: ^job.*
action: labeldrop
./promtool check config prometheus.yml
curl -XPOST monitor.example.com:9090/-/reload

relabel示例之keep
- source_labels:
- node_port
regex: 9.+1
action: keep

以上实现最终prometheus.yml配置文件
scrape_configs:
- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
relabel_configs:
- source_labels:
- __scheme__
- __address__
- __metrics_path__
regex: (http|https)(.*)
separator: ""
target_label: endpoint
replacement: ${1}://${2}
action: replace
- regex: (__meta_consul_service_)(.*)
replacement: node_${2}
action: labelmap
- regex: job
action: labeldrop
- source_labels:
- node_port
regex: 9.+1
action: keep
metric_relabel_config
- 删除不必要的指标
- 从指标中删除敏感或不需要的标签
- 添加、编辑或者修改指标的标签值或者标签格式
- 更改或添加标签会创建新的时间序列,所以要明确使用各标签,尽可能保持不变,避免创建出一个动态的数据环境
- 标签是时间序列的唯一性约束,删除标签并导致时间序列重复时,可能会导致系统出现问题
metric relabel删除指标
- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
metric_relabel_configs:
- source_labels: [__name__]
regex: go_info
action: drop
curl -XPOST monitor.example.com:9090/-/reload


写到最后
Prometheus-5:relabel标签重新打标的更多相关文章
- Prometheus监控学习笔记之Prometheus的Relabel,SD以及Federation功能
0x00 k8s 的监控设计 k8s 默认以及推荐的监控体系是它自己的一套东西:Heapster + cAdvisor + Influxdb + Grafana,具体可以看 这里 . 包括 k8s 自 ...
- Prometheus 标签使用示例整合
Prometheus 监控实例 一.Prometheus 根据标签聚合总CPU使用率 1.主机添加标签(可在多个主机内添加相同标签实现聚合):vim prometheus.conf static_co ...
- kubernetes之监控Prometheus实战--prometheus介绍--获取监控(一)
Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016 ...
- Prometheus监控学习笔记之Prometheus普罗米修斯监控入门
0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流 ...
- Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统
Prometheus 持久化安装 我们prometheus采用nfs挂载方式来存储数据,同时使用configMap管理配置文件.并且我们将所有的prometheus存储在kube-system #建议 ...
- Kubernetes 监控--Prometheus 高可用: Thanos
前面我们已经学习了 Prometheus 的使用,了解了基本的 PromQL 语句以及结合 Grafana 来进行监控图表展示,通过 AlertManager 来进行报警,这些工具结合起来已经可以帮助 ...
- C#开发微信门户及应用(37)--微信公众号标签管理功能
微信公众号,仿照企业号的思路,增加了标签管理的功能,对关注的粉丝可以设置标签管理,实现更加方便的分组管理功能.开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作, ...
- jstl标签库基础教程及其使用代码
概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Sta ...
- Dreamweaver标签库
.highlight .hll { background-color: #ffffcc } .highlight { background: #ffffff } .highlight .c { col ...
- 转:常用的HTML标签和属性解释
基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---</TITLE>,包含 ...
随机推荐
- Godot报错 Node not found: "SubViewport"[一问随笔]
问题: 使用TextureRect显示SubViewport的内容,结果发生了如下报错 E 0:00:01:0007 get_node: Node not found: "SubViewpo ...
- YOLO4论文中文版
文章目录 YOLO4论文中文版 摘要 1.介绍 2.相关工作 2.1.目标检测模型 2.2.Bag of freebies 2.3.Bag of specials 3.方法 3.1.架构选择 3.2. ...
- AI 绘画基础 - 细数 Stable Diffusion 中的各种常用模型 【🧙 魔导士装备图鉴】
AI 绘画新手魔导士在刚开始玩 Stable Diffusion 时总会遇到各种新的概念,让人困惑,其中就包括各种模型和他们之间的关系. 魔法师入门得先认识各种法师装备(各种模型),让我们遇到问题知道 ...
- Golang for循环遍历小坑
一.for循环 循环:让程序多次执行相同的代码块for循环是Go语言中唯一一个循环结构for循环经典语法先执行表达式1执行表达式2判断是否成立,如果成立执行循环体循环体执行完成后,执行表达式3再次执行 ...
- pngquant 在 Windows 上压缩带中文路径的 png 图片
pngquant 是一个优秀的 png 压缩工具,但是在 Windows 上不支持目录中带有 unicode 字符(例如中文)的文件.所以要用一个折中的办法(即标准输入)让 pngquant 压缩目录 ...
- 2020-10-24:go中channel的recv流程是什么?
福哥答案2020-10-24: ***[评论](https://user.qzone.qq.com/3182319461/blog/1603496305)
- Django4全栈进阶之路2 创建虚拟环境、项目、app应用、启动运行项目
一.安装虚拟环境: 命令:pip3 install virtualenv 二.安装管理工具: 命令:pip3 install virtualenvwrapper 三.新建: 命令:python -m ...
- json函数
Python与JSON(load.loads.dump.dumps) 1.Python中加载JSON 使用loads(string):作用将string类型转为dict字典或dict链表 # 加载 ...
- IntelliJ IDEA一站式配置【全】(提高开发效率)
IDEA常用设置(提高开发效率) 本人也是IDEA编译器的忠实用户了,但是有时出于各种原因,比如更换设备等等,IDEA总是需要重新安装配置.这就让我比较苦恼,因为总是记不全自己之前都修改了哪些地方(原 ...
- uniapp 全局背景音乐播放+暂停(跳转页面不暂停)
最近需要一个功能 是在h5中播放小游戏的背景音乐,但是跳转界面之后音乐不暂停,就是跳转多个页面之后,音乐依然在播放,在游戏界面会有设置的静音的按钮,可以开启音乐和关闭音乐. 单独建了一个music.j ...