如何通过Prometheus查询计算Jenkins Job的构建时间增加

v440hwme  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(136)

我使用Prometheus Metrics插件从Jenkins提取统计数据。
我已经在PromQL中创建了一个查询来检查Jenkins作业的构建时间是否比平均成功构建时间增加了50%:

default_jenkins_builds_last_build_duration_milliseconds > 1.5 * (avg_over_time(default_jenkins_builds_last_build_duration_milliseconds[180d]) and default_jenkins_builds_last_build_result_ordinal == 0)

但是,此查询存在问题。结果会随着时间的推移而变淡,因为查询会不断将时间序列中的每个值添加到总平均结果中。可能有些值没有更改,但它们会不断添加。
我希望创建一个查询来计算当前成功构建时间与前一个成功构建时间之间的“增量”,但似乎没有代表前一个构建的指标(或者我找不到它),所以我最终使用了average_over_time
我还尝试使用offset修饰符按一分钟计算增量(因为普罗米修斯每1分钟刮擦Jenkins出口器),但问题是,有时时间序列返回Nan结果,并且它不能计算每个构建的时间增量。我希望在一个图表中,如果构建时间增加或减少,我会看到一条有一些唐斯的线,但NaN值打破了这个图表。
如何重构此查询以生成预期结果???

uubf1zoe

uubf1zoe1#

我认为答案是this。正如在这个问题的答案中所说的,这不是最好的方法,但它是有效的。

相关问题