0

我有一个名为 workqueue_depth 的指标。例如,workqueue_depth 现在是 3,我想在表格中显示 workqueue_depth 保持在 3 的时间(例如 5 分钟)。所以,我想通过写promql来获取时间。promql怎么写???

4

1 回答 1

1

如果我是正确的,那是不可能的,但肯定有一些选项可以提供所需的结果:

  • 如果depth的值不多,您可以将 depth 更改为标签,将 metic 的值更改为最后一次更改的时间。因此,此时,您还将获得有关上次工作队列具有一定深度的信息。但是您可能应该更改度量名称,因为它不再是语法。

  • 添加另一个指标,例如workqueue_depth_change_seconds,并在每次更改workqueue_depth时为其分配time_now()

  • 或者你可以像这样进行破解:

    max_over_time((变化(prometheus_tsdb_wal_truncations_total[15s])*time())[24h:])

    但正如我所说,这是一个 hack,在这一点上,它会显示 last 值从 last 变化24h,你可以随时增加 this 24h,但你会受到你提供的时间的限制。

于 2019-08-13T17:29:12.323 回答