0

数式をコミットすると、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 でそれぞれ切り捨てと切り上げ)。これは本当に悲しいことであり、上記の式を見直して、意​​図したとおりに機能することを確認する必要があるかもしれません.

4

1 に答える 1