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 中保存。

 

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


  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_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。
这将删除与正在表达式匹配的所有标签。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prometheus配置文件,remote_write是一个用于将数据写入远程存储的配置项,常用参数及其意义如下: - url: 远程存储的地址,可以是HTTP或HTTPS协议。 - remote_timeout: 写入远程存储的超时时间,默认为30秒。 - queue_config: 配置写入队列的属性。包括: - max_samples_per_send: 每次发送的最大样本数,默认为10000。 - max_shards: 最大的分片数,默认为100。 - batch_send_deadline: 批量发送的最后期限,默认为5秒。 - write_relabel_configs: 用于重写或丢弃样本的规则,可以根据需要添加多个relabel_config。 - basic_auth: 基本身份验证的用户名和密码。 - bearer_token: 用于OAuth2身份验证的令牌。 - tls_config: TLS配置,包括证书和密钥等。 例如,以下是一个remote_write的示例配置: ```yaml remote_write: - url: "http://remote-storage:9201/write" remote_timeout: 60s queue_config: max_samples_per_send: 10000 max_shards: 100 batch_send_deadline: 5s write_relabel_configs: - source_labels: [__name__] regex: "up" action: drop basic_auth: username: "user" password: "password" tls_config: insecure_skip_verify: true ``` 以上配置Prometheus使用remote_write将数据写入名为remote-storage的远程存储。写入超时时间为60秒,每次最多发送10000个样本,最大分片数为100,批量发送最后期限为5秒。此外,该配置还使用write_relabel_configs将名称为up的样本丢弃,并使用basic_auth进行基本身份验证,同时使用tls_config进行TLS配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值