现在我正在从节点导出器中抓取指标。节点导出器导出的一些指标具有挂载点
标签。
我想删除具有此标签且与正则表达式不匹配的时间序列。我尝试使用keep
操作(因为我希望保留与此正则表达式匹配的时间序列),但这也会删除没有mountpoint
标签的所有其他度量。
metric_relabel_configs:
- source_labels: ['mountpoint']
regex: '(\/home|\/var\/domains)\/something.*'
action: keep
我也尝试过使用drop
操作,但这需要我使用负前瞻来反转正则表达式(这不受支持,因为Prometheus是用Go-of-course编写的)。
我的选择是什么?
重要的是,我无法控制节点导出器的配置方式,因此我无法将节点导出器本身配置为不导出某些特定装入点的度量(如果可能的话)。
如果我对你的理解是正确的,那么下面这些应该能满足你的需求。我在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"
请注意,我使用了布莱恩·巴西在重新标记文章中分享的技巧,并对其进行了改编。