【问题标题】:prometheus relabel_config 删除操作不起作用
【发布时间】:2022-01-18 03:08:36
【问题描述】:

我一直在尝试通过relabel_configs 删除未使用的指标(在抓取之前)以减轻 Prometheus 集群的负载:

- job_name: nginx-ingress-controller-metrics
  kubernetes_sd_configs:
  - role: endpoints
    namespaces:
      names:
      - <some-namespace>
  relabel_configs:
  # single
  - source_labels: [__name__]
    regex: nginx_ingress_controller_response_size_bucket
    action: drop
  # multiple
  - source_labels: [__name__]
    regex: nginx_ingress_controller_(request_size_bucket|response_duration_seconds_bucket|bytes_sent_bucket|bytes_sent_sum)
    action: drop

但是,我没有看到任何这些指标被丢弃(在抓取之前),它们被抓取和摄取,因为我可以通过 PromQL 查询它们。

我尝试了相同配置的许多变体(即引号、括号等)。知道为什么这些目标仍然被抓取/摄取吗?

【问题讨论】:

    标签: prometheus


    【解决方案1】:

    你不能在刮之前到__name__(即relabel_configs),这个标签还不存在。

    __name__ 在抓取后变得可用,您仍然可以在metric_relabel_configs 中删除一些指标在摄取之前

    metric_relabel_configs:
      - source_labels: [__name__]
        regex: nginx_ingress_controller_response_size_bucket
        action: drop
    

    【讨论】:

    • 有趣。这就说得通了。谢谢。那么如何在抓取之前删除指标呢?我什至不想抓取未使用的指标来减轻负载。我知道metric_relabel_configs,但我相信这是在抓取之后,在摄取之前。
    • 我还在看 promcon(2018 年,慕尼黑)一位演讲者的一副牌,使用 relabel_configs 按标签 __address__ 删除一个指标。请参阅幻灯片 34 (promcon.io/2018-munich/slides/…)。
    • @danksim 没有办法做到这一点。您必须先检索(=scrape)指标,然后才能知道它们的名称。在这种情况下,Scrape 意味着 Prometheus 执行 HTTP GET 请求并将所有存在的标签获取到内存中。他们可以在它们进入数据库之前删除一些(=在摄取之前)。这是不可能用__address__ 实现的,因为它只是目标实例的host:port。您只能通过弄乱实例来删除实例中的所有指标。
    • 虽然这是有道理的,但我对这里的措辞 (robustperception.io/…) 感到困惑,它声明了 The drop and keep actions will halt processing if they do or don't match, respectively. For relabel_configs this will cause the target not to be scraped, for metric_relabel_configs this will cause a time series not to be ingested。我读错了吗?我想要的只是不抓取某些指标(在我的情况下,是无用的指标)
    • @danksim 你有它:“对于relabel_configs,这将导致目标不被抓取,对于metric_relabel_configs,这将导致时间序列不被摄取”。正如您所说,您希望避免某些 metrics(=时间序列),而 relabel_configs 只能帮助您避免抓取一些 主机(=目标)。再一次,在relabel_configs 期间,尚未建立与目标的连接,因此您只知道 SD 数据。此时您无法选择某些指标,因为还没有。
    猜你喜欢
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2019-04-18
    相关资源
    最近更新 更多