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>,包含 ...
随机推荐
- MySQL InnoDB Architecture 简要介绍
MySQL InnoDB 存储引擎整体架构图: 一.内存存储结构 1.Buffer Pool buffer pool 是主内存中的一块儿存储区域,用于存储访问的表及索引数据.这样从内存中直接访问获取使 ...
- S3 对象重命名
本文所述操作适用于兼容 S3 协议的所有存储框架,包括 AWS S3.Aliyun OSS.MinIO.Ceph 等. 不知为何,截止目前,S3 协议并不包含对象重命名的接口.如果有重命名对象的需求, ...
- 2022-08-27:以下go语言代码输出什么?A:[0];B:panic;C:7;D:不清楚。 package main import ( “fmt“ ) func main() { a
2022-08-27:以下go语言代码输出什么?A:[0]:B:panic:C:7:D:不清楚. package main import ( "fmt" ) func main() ...
- 《数据结构(C语言版)》严蔚敏代码实现———链表
一.前言 哈喽,大家好~我是熊子q,我又来了! 他来了他来了,他带着代码过来了! 今天要分享的代码是链表!快快搬着小板凳! 二.代码 严奶奶的书中预定义了一些预定义常量和类型,大家可以 新建一个y.h ...
- 关于ESXi下如何查看磁盘SMART信息(SATA & NVMe)的教程
ESXi下查看磁盘SMART比较麻烦,并且SATA协议的和NVMe协议的操作不一样,下面分别进行详细陈述 SATA--使用smartctl查看 本部分参考梦幻生命@CSDN(原文链接https://b ...
- 【重学C++】03 | 手撸C++智能指针实战教程
文章首发 [重学C++]03 | 手撸C++智能指针实战教程 前言 大家好,今天是[重学C++]的第三讲,书接上回,第二讲<02 脱离指针陷阱:深入浅出 C++ 智能指针>介绍了C++智能 ...
- 基于Expression Lambda表达式树的通用复杂动态查询构建器——《构思篇一》
在上一篇中构思了把查询子句描述出来的数据结构,那么能否用代码将其表达出来,如何表达呢? 再次回顾考察,看下面的查询子句: Id>1 and Id<10 如上所示,有两个独立的条件分别为Id ...
- es mysql 适用场景对比
es mysql 适用场景对比 问题一 全文检索毫无疑问直接上es,那么除了这种场景,什么时候该选es?为啥mysql不行? 对枚举字段的搜索 mysql创建索引的原则是对于那些区别度高字段建立索引, ...
- 2个场景实例讲解GaussDB(DWS)基表统计信息估算不准的处理方案
摘要:通过2个实例场景讲解GaussDB(DWS)运维解决方案. 本文分享自华为云社区<GaussDB(DWS)运维 -- 基表统计信息估算不准的常见场景及处理方案>,作者:譡里个檔. 场 ...
- 生信服务器 | Linux 时间戳和标准时间
在 Linux 系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数.如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等 ...