Prometheus 配置文件中 metric_relabel_configs 配置
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 中保存。
重新标记操作一般常见的情况
- 删除不必要的指标。
- 从指标中删除敏感或不需要的标签。
- 添加、编辑或者修改指标的标签值或者标签格式。
一、删除不需要的指标(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_name
中 metric
的 label
命名可能不相同。比如: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。
这将删除与正在表达式匹配的所有标签。
相关文章
- pycharm的调试功能_pycharm运行调试配置
- Nginx配置文件(nginx.conf)配置详解
- 如何使用IntelliJ IDEA 配置Maven
- flutter 配置文件_怎么配置mysql的环境变量
- MYSQL performance_schema 不显示信息 和调整 performance_schema 的配置
- nginx 同一 iP 多域名配置方法(多子配置文件,含 https)
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
- 聊聊如何在docker环境中配置hosts
- Vim配置文件(.vimrc),Vim配置教程
- Linux自动启动配置:轻松实现自启动(linux自启动配置文件)
- 文件实现Linux配置文件完整备份的最佳方式(备份linux配置)
- Linux自动配置网络连接(linux自动连接网络)
- 配置MySQL:从默认文件开始(mysql默认配置文件)
- 企业级iptables防火墙高级配置参考文档文献
- MongoDB分片集群实现高性能存储(mongodb分片配置)
- 文件深入浅出MongoDB:查看配置文件(mongodb查看配置)
- Linux 显示器配置选择指南(linux显示器型号)
- Redis主从配置指南(redis的主从配置文件)
- Linux配置:一步步教你如何查看配置文件详细信息(linux怎么查看配置)
- MSSQL数据库连接池配置优化指南(mssql连接池配置文件)
- 基于服务器的Redis环境配置简单指南(服务器配置redis环境)
- 攻克Redis如何正确加载配置文件(加载redis配置)
- 配置你的redis,快速轻松搞定(使用配置文件 redis)
- 策略Redis定期删除策略让你的配置保持干净(redis配置定期删除)
- GitHub Codespaces现已支持团队和企业云计划 配置最高32核心64GB内存