【问题标题】:Multiple scrape jobs running on same target in Prometheus在 Prometheus 的同一目标上运行多个抓取作业
【发布时间】:2022-02-14 14:31:02
【问题描述】:

我正在研究需要以不同的抓取间隔抓取指标的用例。例如,metric_one 需要每 1 小时刮一次,metric_two 每 15 秒刮一次。这两个指标都来自同一个目标。我尝试过的解决方案如下:

global:
scrape_interval: 15s
scrape_configs:
 - job_name: 'job_two'
   static_configs:
     - targets:
       - targets: ["engine:5001"]
   metric_relabel_configs:
   - source_labels: [ __name__ ]
     regex: 'metric_one'
     action: drop
 - job_name: 'job_one'
   scrape_interval: 3600s
   static_configs:
     - targets:
       - targets: ["engine:5001"]
   metric_relabel_configs:
   - source_labels: [ __name__ ]
     regex: 'metric_two'
     action: drop

此 Prometheus 配置尝试在同一主机上运行两个不同的抓取作业。 job_one 只抓取 metric_onejob_two 只抓取 metric_one,但 Prometheus 服务发现无法与 job_two 正常工作,并且显示健康检查状态 unknown 有时根本不出现当我在 Prometheus 控制台中运行 up 时。 有没有其他适当的解决方案,或者我在这个解决方案中做错了什么?

【问题讨论】:

    标签: prometheus prometheus-alertmanager


    【解决方案1】:

    最简单的解决方案是将抓取间隔减少到 5 分钟或更短。

    这有点像 Prometheus 的内部结构。 PromQL 只回溯 5 分钟以查找样本,因此在自上次抓取后的这段时间之后,您开始看到所描述的行为。在图表上很容易看到,您会很快注意到该指标在最后一次抓取后不久就中断了。为了防止这种情况,您需要至少每五分钟抓取一次指标,即使指标值不会经常更改。这只是为了告诉 Prometheus 该指标仍然存在。

    【讨论】:

      猜你喜欢
      • 2022-08-14
      • 2019-01-30
      • 2016-12-20
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多