我有一个名为workqueue_depth的指标。例如,workqueue_depth现在是3,我想在表中显示workqueue_depth保持3(例如5min)多长时间。因此,我想通过编写promql来获取时间。如何编写promql ???
答案 0 :(得分:1)
如果我是正确的,那是不可能的,但是肯定有一些选项可以提供所需的结果:
如果 depth 接受的值不多,则可以将“ depth”(深度)更改为标签,将“ memetic”(值)值更改为上次更改时间。因此,在这一点上,您还将获得有关上一次 workqueue 具有一定深度时的信息。但是您可能应该更改度量名称而不是度量名称,因为它不再是语法。
添加另一个工具,例如 workqueue_depth_change_seconds ,并在每次更改 workqueue_depth 时为其分配 time_now()。
或者您可以像这样进行黑客入侵:
max_over_time((changes(prometheus_tsdb_wal_truncations_total [15s])* time())[24h:])
但是正如我说的那样,这是hack,此时,它将显示您从上一个24h
开始的最后一个值更改,您可以随时增加此24h
,但您将限于您将提供的时间。