【问题标题】:Most recent value or last seen value最近的值或最后看到的值
【发布时间】:2017-04-05 09:26:18
【问题描述】:

Prometheus 是围绕返回指标的时间序列表示而构建的。然而,在许多情况下,我只关心指标的状态是什么现在,我很难找到一种可靠的方法来获取一个“最近”的值指标。

因为现在它每 30 秒获取一次指标,所以我尝试了这样的方法:

my_metric[30s]

但这感觉很脆弱。如果指标的日期在数据点之间超过或少于 30 秒,那么我得到的结果要么超过一个,要么为零。

如何获取指标的最新值?

【问题讨论】:

  • 如果您需要获取最近 5 分钟时间范围之外的最新指标值,请尝试使用 last_over_time(metric[1h]) from MetricsQL 之类的方法。此查询将回顾窗口从 5 分钟增加到一个小时(请参阅方括号中的 1h)。

标签: prometheus


【解决方案1】:

您只需要my_metric,默认情况下会返回不超过 5 分钟的最新值。

【讨论】:

  • Prometheus 控制台确实只显示最新值,但是通过 API(例如通过 Grafana)查询指标时,my_metric 返回时间序列。尝试点击/api/v1/query?query=my_metric。它返回时间序列,而不是最近的值。
  • 不,它没有,例如demo.robustperception.io:9090/api/v1/query?query=up 只是最近的值。
  • 该结果符合预期,每个都是该时间序列的最新结果。
  • 我仍然比最新的... >
  • @brian-brazil 如果我想在目标下降一段时间后获取仪表的最新值该怎么办。
【解决方案2】:

鉴于此:

namespace_metricname_count_sum{id="1",status="to-do"}
namespace_metricname_count_sum{id="1",status="in-progress"}

如果您想获得最新的值,您需要使用在这种情况下的共同值是id=~".*",通过对日志进行分组,您将能够获得时间范围内的最后一个值

count ( max_over_time ( namespace_metricname_count_sum{id=~".*"}[12h])) by (status)

【讨论】:

  • Axel,您的查询将返回这两个值,因为您是按状态分组的。目标是返回进行中,因为这是最新状态。
【解决方案3】:

我通过 prom/cloudwatch-exporter 从 AWS 获得的指标也有类似的问题。 AWS 似乎需要一段时间才能收敛其 CloudWatch 指标。过去大约需要 10 分钟,但现在更像是 13 分钟。我们一直遗漏诸如磁盘空间不足之类的问题,因为这些指标完全无法将其传递给 prometheus,因此我们的警报毫无用处。

我发现“偏移”在这里很有用,我想要最后一个指标,但它在 5m 截止值之外。因此,通过指定偏移量,我仍然可以获取一个值而不是什么都没有。示例:

aws_ec2_cpuutilization_average offset 15m

【讨论】:

    【解决方案4】:

    要获得my_metric 的最新值早于 5m 而不求助于 hacky PromQL 查询,您可以修改 query.lookback-delta Prometheus 选项,这是定义此默认 5m 值的位置.

    例如,在 Prometheus 启动选项中指定 --query.lookback-delta=1d 并重新启动服务将导致 PromQL 查询 my_metric 返回最近 24 小时的 my_metric 值。


    此“回溯时间窗口”之外的指标称为stale

    【讨论】:

      【解决方案5】:

      如果您使用 Prometheus 直接使用 query_range API 端点,您将获得时间序列。如果您切换到 query API 端点,您将获得最后一个值。

      Grafana 中,您可以通过切换 Instant-toggle 从时间序列切换到最后一个值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-06
        • 1970-01-01
        • 2017-08-01
        • 1970-01-01
        • 2015-03-01
        • 2015-10-07
        • 2019-08-10
        • 1970-01-01
        相关资源
        最近更新 更多