我有一个名为 workqueue_depth 的指标。例如,workqueue_depth 现在是 3,我想在表格中显示 workqueue_depth 保持在 3 的时间(例如 5 分钟)。所以,我想通过写promql来获取时间。promql怎么写???
问问题
257 次
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
,你可以随时增加 this24h
,但你会受到你提供的时间的限制。
于 2019-08-13T17:29:12.323 回答