最近项目中需要监控k8s中pod的资源占用率,前端有时候发现占用率为-2147483648
我们从deployment获取到pod的cpu/memory limit信息作为最大值,然后从metric api获取到当前pod的cpu/memory 占用作为当前值
从k8s中获取到的资源占用是int64类型的
分别吧他们转为float64,然后相除,得到最后结果,转换为int32(因为百分比显然用int32足够了)
当时处理是deployment如果还没有创建,那么最大值设为0,如果pod metric获取不到当前值设为0
得到的结果是NaN,如果转为int32,是-2147483648
对于这个结果需要进行判断然后处理
if math.NaN(xxx) {
...
}
网友评论