Как округлить в формуле пакетного автомасштабирования Azure

Когда я фиксирую формулу, 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 для округления в меньшую и большую сторону соответственно). Это действительно печально, и мне может потребоваться просмотреть приведенное выше уравнение, чтобы убедиться, что оно работает так, как задумано.


person Nomenator    schedule 19.01.2016    source источник


Ответы (1)