当我提交公式时,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)
置于三元表达式中,但它抱怨“评估错误”。我认为这种情况正在发生,因为我正在尝试提供一小部分专用机器。
那么......我怎么能在这样的表达中上下左右?
UPD:
所以我发现了我的问题,$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分别向下和向上舍入)。这确实很可悲,可能需要我检查上面的等式,以确保它按预期工作。