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>,包含 ...
随机推荐
- DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调
又一个针对LoRA的改进方法: DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Lo ...
- LeetCode 周赛 341 场,模拟 / 树上差分 / Tarjan 离线 LCA / DFS
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周末有单双周赛,双周赛我们讲过了,单周赛那天早上有事没参加,后面做了虚拟竞赛,然后整个 ...
- 从热爱到深耕,全国Top10开源软件出品人手把手教你如何做开源
摘要:DTT直播邀请到管雷鸣与广大开发者分享"如何在开源领域找到适合自己的路". "想象一下,你写的代码被越来越多的人使用,并极大地帮助他们提高了开发效率和稳定性.&qu ...
- 用C#发送post请求,实现更改B站直播间标题[简单随笔]
第一次发这样的网络数据包.记录一下. API参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/live/man ...
- 获取电脑的网络连接状态(四)IPHost
网络连接判断,使用IPHost测试获取: 1 public static bool IsIPHostConnected() 2 { 3 try 4 { 5 System.Net.IPHostEntry ...
- 百度飞桨(PaddlePaddle)-数字识别
手写数字识别任务 用于对 0 ~ 9 的十类数字进行分类,即输入手写数字的图片,可识别出这个图片中的数字. 使用 pip 工具安装 matplotlib 和 numpy python -m pip i ...
- 2020-09-18:LRU手撸,说下时间复杂度和空间复杂度。
福哥答案2020-09-18: 方法:哈希表 + 双向链表.时间复杂度:对于 put 和 get 都是 O(1).空间复杂度:O(capacity),因为哈希表和双向链表最多存储 capacity+1 ...
- 2022-02-05:字典序的第K小数字。 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 10**9。 示例 : 输入: n: 13 k: 2
2022-02-05:字典序的第K小数字. 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 10**9. 示例 : 输入: n: 13 k: 2 输出 ...
- vue全家桶进阶之路50:Vue3 环境变量+跨域设置实例
使用.env加后缀的方式来建立某个模式下的环境变量, 例如:项目根目录新建两个环境变量文件(development开发环境和production生产环境): .env.development .env ...
- 基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索
作者:京东物流 杨建民 一.Sentinel简介 Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. Sentinel 具有以下特征: 丰富的应用场景:秒 ...