• 6.1relabel_config的位置
  • 6.2 relabel_config参数详解
    • 1.replace
    • 2. keep
    • 3.drop
    • 6.labelkeep
    • 7.hashmod
  • 6.3 正则表达式

重新标记是一种强大的工具,可以在抓取目标之前动态重写目标的标签集。 每个抓取配置可以配置多个重新标记步骤。 按照它们在配置文件中的出现顺序应用于每个目标的标签集。

6.1relabel_config的位置

1 global:
2 ....
3 # 抓取配置列表.
4 scrape_configs:
5 [ - <scrape_config> ... ]....
 1 # The job name assigned to scraped metrics by default.
2 job_name: <job_name>
3
4 [ honor_labels: <boolean> | default = false ]
5
6 [ honor_timestamps: <boolean> | default = true ]
7
8 # List of target relabel configurations.
9 relabel_configs:
10 [ - <relabel_config> ... ]
11
12 # List of metric relabel configurations.
13 metric_relabel_configs:
14 [ - <relabel_config> ... ]
15 ......

6.2 relabel_config参数详解

 1 # 源标签从现有标签中选择值。 它们的内容使用已配置的分隔符进行连接,并与已配置的正则表达式进行匹配,以进行替换,保留和删除操作。
2 [ source_labels: '[' <labelname> [, ...] ']' ]
3
4 # 分隔符放置在连接的源标签值之间。
5 [ separator: <string> | default = ; ]
6
7 # 在替换操作中将结果值写入的标签。
8 # 替换操作是强制性的。 正则表达式捕获组可用。
9 [ target_label: <labelname> ]
10
11 # 与提取的值匹配的正则表达式。
12 [ regex: <regex> | default = (.*) ]
13
14 # 采用源标签值的散列的模数。
15 [ modulus: <uint64> ]
16
17 # 如果正则表达式匹配,则执行正则表达式替换的替换值。 正则表达式捕获组可用。
18 [ replacement: <string> | default = $1 ]
19
20 # 基于正则表达式匹配执行的操作。
21 [ action: <relabel_action> | default = replace ]

<regex>是任何有效的RE2正则表达式。 它是replacekeepdroplabelmaplabeldroplabelkeep操作所必需的。 正则表达式固定在两端。 要取消锚定正则表达式,请使用。* <regex>.*

<relabel_action>确定要采取的重新签名行动:

1.replace 

regex与连接的source_labels匹配。 然后,将target_label设置为replacement,将匹配组引用(${1}${2},...)替换为其值。 如果正则表达式不匹配,则不进行替换。

 1 scrape_configs:
2 - job_name: file
3 file_sd_configs:
4 - files:
5 - '*.json'
6 #例如:team="monitoring"-->team_new="monitor"
7 relabel_configs:
8 -source_labels: [team]
9 regex: monitoring
10 replacement: monitor
11 target_label: team_new
12 action: replace
13 #action的默认值是replace
14 - source_labels: [__meta_consul_address]
15 regex: '(.*)'
16 replacement: '${1}:9100'
17 target_label: __address__
18 #参看上面看看这个什么意思
19 - source_labels: [__meta_consul_tag]
20 regex: '.*,(prod|staging|dev),.*'
21 target_label: env

2. keep

删除regex与连接的source_labels不匹配的目标。

1 scrape_configs:
2 - job_name: node
3 consul_sd_configs:
4 - server: 'localhost:8500'
5 relabel_configs:
6 - source_labels: [__meta_consul_tag]
7 regex: '.*,prod,.*'
8 action: keep

3.drop

删除regex与连接的source_labels匹配的目标。

1 scrape_configs:
2 - job_name: node
3 consul_sd_configs:
4 - server: 'localhost:8500'
5 relabel_configs:
6 - source_labels: [__meta_consul_tag]
7 regex: '.*,prod,.*'
8 action: drop

4.labelmap

regex与所有标签名称匹配。 然后将匹配标签的名称替换为replacement指定的值。(不同于replace,keep,drop,只改变label名,不修改标签值)

 1 scrape_configs:
2 - job_name: ec2
3 ec2_sd_configs:
4 - region: <region>
5 access_key: <access key>
6 secret_key: <secret key>
7 #将所有以monitor_开头的标签名替换为去掉monitor_前缀的新标签名字(例如:monitor_foo="bar"-->foo="bar")
8 relabel_configs:
9 - regex: monitor_(.*)
10 replacement: '${1}'
11 action: labelmap

5.labeldrop

regex与所有标签名称匹配。匹配的任何标签都将从标签集中删除。(理labelmap)5.labeldrop

6.labelkeep

regex与所有标签名称匹配。任何不匹配的标签都将从标签集中删除。(同理labelmap)

7.hashmod

target_label设置为连接的source_labels的哈希模数。

 1 scrape_configs:
2 - job_name: my_job
3 # Service discovery etc. goes here.
4 relabel_configs:
5 #prometheus从特定targets随机抓取数据量的10%
6 - source_labels: [__address__]
7 modulus: 10
8 target_label: __tmp_hash
9 action: hashmod
10 - source_labels: [__tmp_hash]
11 regex: 0 #指定抓取的目标
12 action: keep

必须小心使用labeldroplabelkeep,以确保在删除标签后仍然对指标进行唯一标记。

6.3 正则表达式

6. 配置项:relabel_config的更多相关文章

  1. SpringMVC配置项学习笔记

    1. <mvc:annotation-driven /> <mvc:annotation-driven />是一种简写形式,默认会注册DefaultAnnotationHand ...

  2. JSHint配置项说明

    转自:http://www.jianshu.com/p/4cb23f9e19d3 什么是JSHint? 官方网站这样介绍: JSHint, A Static Code Analysis Tool fo ...

  3. validate插件深入学习-03validate()方法配置项

    validate()方法配置项 rules 定义校验规则 messages 定义提示信息 上面这两个已经介绍过了 rules里隐藏的属性depends,只有符合条件(返回true)的时候才会执行 su ...

  4. 配置项setOption -- title

    标题组件,包含主标题和副标题.在 ECharts 3 中可以存在任意多个标题组件,这在需要标题进行排版,或者单个实例中的多个图表都需要标题时会比较有用. title.show boolean [ de ...

  5. Ext JS 4 新特性2:配置项属性(config)之二

    Ext JS 4 新特征2:配置项属性config之二 ☞ Config(自动的setters和getters) Ext JS 4介绍了config声明方式,在Ext JS 中也有几个例子:在运行程序 ...

  6. Ext JS 4 新特性2:配置项属性(config)之一

    Ext JS 4 新特征2:配置项属性config 最新版本的Ext JS 4.2的另外一个伟大的新特征就是增加了configuration配置项属性,当我们在创建一个新类的时候,经常性的要设置某某属 ...

  7. Redis应用配置项说明

    近期整理了下项目中Redis配置参数,以便学习备用~ #指定内存大小,格式为1k 1GB 1M,单位不区分大小写 # 1k  => 1000 bytes # 1kb => 1024 byt ...

  8. Mysql配置项的简单优化

    preface 众所周知,Mysql已经成为广泛使用的开源数据库了,so 公司阿里云的数据库为Mysql,在最开始的时候是直接yum安装,配置项都是默认的,没有任何调整,这次有时间就参考各路大神的资料 ...

  9. 【转】VS项目属性的一些配置项的总结

    首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目, ...

  10. 【转】Hive配置文件中配置项的含义详解(收藏版)

    http://www.aboutyun.com/thread-7548-1-1.html 这里面列出了hive几乎所有的配置项,下面问题只是说出了几种配置项目的作用.更多内容,可以查看内容问题导读:1 ...

随机推荐

  1. 【scikit-learn基础】--『监督学习』之 K-近邻分类

    KNN(K-近邻),全称K-Nearest Neighbors,是一种常用的分类算法.KNN算法的历史可以追溯到1957年,当时Cover和Hart提出了"最近邻分类"的概念.但是 ...

  2. MyBatis 批量更新的处理

    一般来讲,在使用 MyBatis 进行数据库的访问时,通常会遇到需要更新数据的相关业务,在某些业务场景下,如果需要进行一批次的数据更新,可能性能不是特别理想.本文将简要介绍几种能够高效地处理批量更新数 ...

  3. QRCoder1.4.3生成二维码,不依赖System.Drawing,解决"未能找到类型或命名空间名QRCode","及ImageFormatPng仅在windows上受支持"

    生成二维码1(简单) 包引用: <PackageReference Include="QRCoder" Version="1.4.3" /> usi ...

  4. 深入剖析 Linux Cgroups 子系统:资源精细管理

    本章主要演示以下 cgroups 下各个 subsystem 的作用. 根据难易程度,依次演示了 pids .cpu 和 memory 3 个 subsystem 的使用. 注:本文所有操作在 Ubu ...

  5. C++多线程强制终止

    摘要:实际上,没有任何语言或操作系统可以为你提供异步突然终止线程的便利,且不会警告你不要使用它们. 本文分享自华为云社区<如何编写高效.优雅.可信代码系列(1)--C++多线程强制终止>, ...

  6. 详解openGauss多线程架构启动过程

    摘要:本文介绍openGauss数据库的启动过程,包括主线程,辅助线程及业务处理线程的启动过程. 本文分享自华为云社区<openGauss内核分析(一):openGauss 多线程架构启动过程详 ...

  7. TICS端到端实践:企业积分查询作业开发

    摘要:本次TICS端到端体验,将以一个"小微企业信用评分"的场景为例. 本文分享自华为云社区<基于华为隐私计算产品TICS实现端到端的企业积分查询作业[玩转华为云]>, ...

  8. “pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘

    摘要:pip不是内部或外部命令,也不是可运行的程序或批处理文件到底有多么神秘? 本文分享自华为云社区<揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱>,作者:A ...

  9. java并发编程(2):Java多线程-java.util.concurrent高级工具

    高级多线程控制类 Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者编写高效.易维护.结构清晰的Java多线程程序. Thr ...

  10. git clone 出现fatal: unable to access ‘https://github 错误解决方法

    git clone 遇到问题:fatal: unable to access 'https://github.comxxxxxxxxxxx': Failed to connect to xxxxxxx ...