【问题标题】:Prometheus (metric) relabel config with inverse regex match / negative lookaheadPrometheus(公制)使用逆正则表达式匹配/负前瞻重新标记配置
【发布时间】:2021-09-03 03:03:21
【问题描述】:

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

我想删除具有此标签且与正则表达式匹配的时间序列。我尝试使用 keep 操作(因为我想保持 do 与此正则表达式匹配的时间序列)但这也会丢弃所有其他没有 mountpoint 标签的指标。

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

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

我有哪些选择?

重要,我无法控制节点导出器的配置方式,因此我无法将节点导出器本身配置为不导出某些特定挂载点的指标(如果这甚至可能的话)。

【问题讨论】:

    标签: prometheus prometheus-node-exporter


    【解决方案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"
    

    请注意,我使用了 Brian Brazil 在 Or in relabelling 文章中分享的提示并对其进行了改编。

    【讨论】:

    • 这不是因为问题仍然存在,没有“挂载点”标签的时间序列也会被丢弃。我不知道“_tmp”约定/重新标记技术,所以谢谢!
    • 罗杰。也许你想在discuss.prometheus.io 中问这个问题……我相信那里会有人回答;)
    • 会这样做,非常感谢您的帮助!真的很感激;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多