参考:SpringBoot自定义prometheus监控_无人问津的博客-CSDN博客
在promethues的graph页,如果查询metrics_name{tag1:"value1",...},可以查到数据,数据以线图展示,这个比较好理解,就是把这个系列每个时间点的数值绘制了出来,但是我要查五分钟内的:metrics_name{tag1:"value1",...}[5m],图表就无法展示了,一度无法理解,这个不就是应该展示前5分钟的数据吗,出现这种疑惑其实是没有理解prometheus真正用法,在prometheus里,永远要把数据想象成每一秒的数值,图表展示的必须是 【时间(精确到秒)】,【这一秒的数值】,是一个一维数组,而metrics_name{tag1:"value1",...}[5m]查出来的是一个二维数组【时间(精确到秒)】,【这一秒前五分钟内的所有数值】,自然就无法绘制线图了,所以我们要对这个数据的第二维度做一些聚合,例如做个sum,或者统计一下count,或者算一下增长量increase,或者平均增长量rate,或者瞬间增长量irate,就再次将二维数组变成了一维数组,就可以在graph中做展现了,栗子:
jvm_buffer_total_capacity_bytes{container="uimp-kube-container"}
jvm_buffer_total_capacity_bytes{container="uimp-kube-container"}[5m]
返回的是这一秒的时候,前五分钟的值:
查看graph报错: