Open sunyucheng opened 1 year ago
我使用的gosutil是最新的版本v3.21.6
,从gosutil的源码看,这里的p.Percent(0)
的取值也似乎应该是0.0~100.0
,在gosutil中的关键逻辑如下所示
func calculatePercent(t1, t2 *cpu.TimesStat, delta float64, numcpu int) float64 {
if delta == 0 {
return 0
}
delta_proc := t2.Total() - t1.Total()
overall_percent := ((delta_proc / delta) * 100) * float64(numcpu)
return overall_percent
}
Hi @sczyh30 ,可以给我一些意见么
this could be a bug, are you interested in fixing it
this could be a bug, are you interested in fixing it
Certainly
Hi @binbin0325, I have already mentioned PR https://github.com/alibaba/sentinel-golang/pull/540
May I ask why this fix has not passed? Is it not ready to be repaired?
背景: 我在测试使用CPU作为阈值的系统自适应流控方案。 问题: 1、在 func IsValidSystemRule(rule *Rule) error中校验的 cpu取值范围为0.0~1.0。但是在实际测试中发现func getProcessCpuStat() (float64, error)函数的实际返回值大小为0.0~100.0。导致在注册规则时因阈值非法
invalid CPU usage, valid range is [0.0, 1.0]
而失败。 该处是否应该修改一下cpu的合法性校验范围。