当我提交我的公式时,Azure 抱怨计算错误。我把它缩小到有一个带小数位的数字。这是我的公式:
pivot = (0.15*($CurrentDedicated/20)+0.84);
target = $CurrentDedicated*(($CPUPercent.GetSample(TimeInterval_Minute*5)/100)/pivot);
自然地,它抱怨没有样本,所以我输入$CPUPercent.GetSamplePercent(TimeInterval_Minute*0,TimeInterval_Minute*5)
了一个三元表达式,但它抱怨“评估错误”。我认为这是因为我试图提供一小部分专用机器。
所以……我怎么能用这样的表情上下四舍五入?
升级版:
所以我发现我的问题,$CPUPercent.GetSample
不应该用作数字。相反,应该在其上使用 max()、min() 或 avg() 来生成一个数字。修正后的公式如下:
samplepercent = $CPUPercent.GetSamplePercent(TimeInterval_Minute*0,TimeInterval_Minute*5);
pivot = (0.15*($CurrentDedicated/20)+0.84);
$TargetDedicated = samplepercent < 0.7 ? 1 : $CurrentDedicated*((avg($CPUPercent.GetSample(TimeInterval_Minute*5))/100)/pivot);
可悲的是,没有办法向上或向下舍入。自动缩放表达式没有函数并且没有%
定义运算符(x = x - x%1 和 x = x - x%1 + 1 分别向下和向上舍入)。这确实令人难过,可能需要我查看上述等式以确保它按预期工作。