提问者:小点点

普罗米修斯(公制)使用反向正则表达式匹配/负前瞻重新标记配置


现在我正在从节点导出器中抓取指标。节点导出器导出的一些指标具有挂载点标签。

我想删除具有此标签且与正则表达式不匹配的时间序列。我尝试使用keep操作(因为我希望保留与此正则表达式匹配的时间序列),但这也会删除没有mountpoint标签的所有其他度量。

metric_relabel_configs:
  - source_labels: ['mountpoint']
    regex: '(\/home|\/var\/domains)\/something.*'
    action: keep

我也尝试过使用drop操作,但这需要我使用负前瞻来反转正则表达式(这不受支持,因为Prometheus是用Go-of-course编写的)。

我的选择是什么?

重要的是,我无法控制节点导出器的配置方式,因此我无法将节点导出器本身配置为不导出某些特定装入点的度量(如果可能的话)。


共1个答案

匿名用户

如果我对你的理解是正确的,那么下面这些应该能满足你的需求。我在Relabeler在线工具中测试了它,似乎做了你想要的?

使用这些重新标记规则:

- source_labels: ['mountpoint']
  regex: '(\/home|\/var\/domains)\/something.*'
  target_label: __tmp_keep_me
  replacement: true
- source_labels: [__tmp_keep_me]
  regex: true
  action: keep

将保留以下(示例)对象标签:

mountpoint: "/home/something/"
job: "node"
fstype: "ext4"

虽然这些将被删除:

mountpoint: "/tmp"
job: "node"
fstype: "ext4"

请注意,我使用了布莱恩·巴西在重新标记文章中分享的技巧,并对其进行了改编。