Prometheus 配置文件中 metric_relabel_configs 配置

参考1:https://www.baidu.com/link?url=YfpBgnD1RoEthqXOL3LgnymQ2hccghAUXZIAkzZBTdJ-7K_4shh2V5LDCZy4ymCv&wd=&eqid=adec794e001cdfb9000000065e0d9acd

Prometheus 从数据源拉取数据后,会对原始数据进行编辑;其中 metric_relabel_configs 是 Prometheus 在保存数据前的最后一步标签重新编辑(relabel_configs)。

所以,哪怕你将 metric_relabel_configs 模块放在 job_name 模块的最前端,Prometheus 解析编辑文件后,也会将 metric_relabel_configs 放在最后。

metric_relabel_configs 模块和 relabel_config 模块很相似。metric_relabel_configs 一个很常用的用途:将监控不需要的数据,直接丢掉,不在Prometheus 中保存。

重新标记操作一般常见的情况

  1. 删除不必要的指标。
  2. 从指标中删除敏感或不需要的标签。
  3. 添加、编辑或者修改指标的标签值或者标签格式。

一、删除不需要的指标(metric)

Prometheus 默认会将所有拉取到的 metrics 都写入自己的存储中。如果某些 metrics 对我们并没有太多意义,可以设置直接丢掉,减少磁盘空间的浪费。‘node_netstat_Icmp_OutMsgs’ 指标数据。

   metric_relabel_configs:
- source_labels: [ __name__ ]
regex: 'node_netstat_Icmp_OutMsgs'
action: drop

使用 source_labels 参数选择要要操作的指标,并且还需要一组标签名称。

示例中使用 __name__ 标签,此标签是标识指标名称的预留标签。

如上,我们丢掉指定job_name 中的

参考上面的配置,我们可以对指标(metric) 进行添加,删除,重命名等操作。

二、修改指标(metric) 中的标签(label)

如果我们使用 Prometheus 监控 Kubernetes 运行状态;应该会遇到,在一个 query 中结合一个以上的job_name(metric_source)的情况。

不同的job_namemetriclabel命名可能不相同。比如:pod的名称可以使用“pod”或者“pod_name” 这两个 label 记录。如果相同含义的label,名称却不相同;对query的编写就很困难了。至少我没有在PromQL 中找到类似 SQL 语句中的 as 的功能的关键词和方法

这样的话,正确的解决思路应该是在 Prometheus 拉取数据后,保存数据前;将 label 的名称进行重写;保证相同含义的label 有相同的名称。

  metric_relabel_configs:
- source_labels: [pod]
separator: ;
regex: (.+)
target_label: pod_name
replacement: $1
action: replace
- source_labels: [container]
separator: ;
regex: (.+)
target_label: container_name
replacement: $1
action: replace

如上,将指定job_name中,所有的metrics中含有名为“pod”和“container”名称的label分别拷贝到名为“pod_name”,“container_name”的label中。

注意:如果metric 的 label的名称包含了“pod”和“container”关键词,但是不等于;则不会处理此label。

三、删除标签

删除标签通常用于隐藏敏感信息或者简化时间序列。

  metric_relabel_configs:
- regex: 'kernelVersion'
action: labeldrop

为了删除标签,我们指定了一个正则表达式,然后指定删除标签的操作labeldrop。

这将删除与正在表达式匹配的所有标签。

Prometheus 配置文件中 metric_relabel_configs 配置--转载的更多相关文章

  1. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  2. Mybatis系列(二):优化MyBatis配置文件中的配置和解决字段名与实体类属性名不相同的冲突

    原文链接:http://www.cnblogs.com/xdp-gacl/p/4264301.html     http://www.cnblogs.com/xdp-gacl/p/4264425.ht ...

  3. git在eclipse中的配置 转载

    git在eclipse中的配置 转载 一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EG ...

  4. MyBatis学习总结(三)——优化MyBatis配置文件中的配置(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013548.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置 ...

  5. MyBatis入门学习教程-优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  6. MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  7. MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="1 ...

  8. MyBatis——优化MyBatis配置文件中的配置

    原文:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写 ...

  9. MyBatis学习总结_03_优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

随机推荐

  1. javascript nested object merge

    javascript nested object merge deep copy Object reference type function namespace(oNamespace, sPacka ...

  2. holy shit CSDN

    holy shit CSDN 垃圾 CSDN 到处都是垃圾文章, 无人子弟 到处都是垃圾广告,看的恶心 毫无底线,窃取别人的知识成果,毫无版权意识 垃圾爬虫,垃圾小号 ...等等 Google Sea ...

  3. js types & primitive & object

    js types & primitive & object js 数据类型 typeof null // "object" typeof undefined // ...

  4. HTTP cache in depth

    HTTP cache in depth HTTP 缓存 https://developers.google.com/web/fundamentals/performance/optimizing-co ...

  5. 【python】递归听了N次也没印象,读完这篇你就懂了

    听到递归总觉得挺高大上的,为什么呢?因为对其陌生,那么今天就来一文记住递归到底是个啥. 不过先别急,一起来看一个问题:求10的阶乘(10!). 求x的阶乘,其实就是从1开始依次乘到x.那么10的阶乘就 ...

  6. Mybatis【20】-- Mybatis延迟加载怎么处理?

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-16-lazyload,需要自取,需要配置mave ...

  7. redis环境配置

    1.解压redis压缩包 tar -zxvf redis-5.0.7 2. 基本环境安装 进入解压后的目录 安装yum(cents需要 其它版本Linux可能不适用yum用其它工具)ubuntu:ap ...

  8. 音视频+ffmpeg

    雷霄骅:https://me.csdn.net/leixiaohua1020 致敬! 1.[总结]视音频编解码技术零基础学习方法 https://blog.csdn.net/leixiaohua102 ...

  9. AntDesign Pro + .NET Core 实现基于JWT的登录认证

    很多同学说AgileConfig的UI实在是太丑了.我想想也是的,本来这个项目是我自己使用的,一开始甚至连UI都没有,全靠手动在数据库里修改数据.后来加上了UI也是使用了老掉牙的bootstrap3做 ...

  10. CentOS安装libxml2报undefined reference to `gzopen64'

    主要是记录一下安装时候踩的坑 CentOS在make libxml2的时候,会报这个错误 ./.libs/libxml2.so: undefined reference to `gzopen64' c ...