繁体   English   中英

Prometheus 在每个时间点找到最小值的平均值

[英]Prometheus find average of minimum at each point over time

我们从普罗米修斯中多个服务的健康检查中获得了多个“向上”指标。 二进制值 0 表示向下,1 表示向上。 在 prometheus 中,我们想计算每个服务的正常运行时间(prometheus 中的聚合)。 服务已启动,如果其所有健康检查都已启动,则与服务的关联在 prometheus 中存储为 label,这很容易,但现在我们要计算这段时间的平均值。

我们如何才能从每个时间点的最小值建立一段时间内的平均值? 我认为我们需要一些min的 function 来使用并返回一个范围向量。 但是min_over_time有一个范围向量作为输入,但返回一个即时向量,但我们更需要它作为min_of_each_time

如果您需要任何进一步的信息,我也可以提供一个例子,但也许对某人来说很容易?!

BR马吕斯

同时,在与同事交谈后,我找到了解决方案。 在抓取时,我们通过 service_id 聚合 health_checks。 这是通过 prometheus 记录/聚合规则完成的。 然后稍后我们可以使用 avg_over_time function 来计算可用性。

  #Aggregate health check availability per service
  - record: service_health_status_aggregated
    expr:  min(consul_health_status) by (serviceName, serviceId, env, dc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM