Как указать метрику Custom / AppInsights при создании правила AutoScale с Powershell? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу использовать Azure Powershell, чтобы отключить автоматическое масштабирование на AZVMSS, которую я создал во время развертывания, чтобы избежать зависаний в процессе развертывания с нашим сервером развертывания (проблема в том, что наше программное обеспечение пытается сделать слишком много одновременно и 5 минут развертывания занимают час, но это проблема для другого времени).

В результате некоторых экспериментов я узнал, что пользовательская метрика, которую мы пишем для понимания приложения, не считается «действительной» с помощью powershell, а действительна на портале, так как я могу выбрать ее и создать правило вручную.

Когда я смотрю в JSON свои настройки автомасштабирования, я вижу имя метрики и копирую его в свой скрипт. Он совпадает с видимой опцией в раскрывающемся списке учетной записи приложения, которую я создал, и которую можно увидеть на портале. Однако, когда я запускаю мои команды powershell сообщает мне, что параметры недопустимы.

Разве я не могу использовать пользовательские метрики? Как мне указать их, если так? Я также заметил, что «Последний» как тип TimeAggregationOperator не разрешен в скрипте, даже если в документах сказано, что он пригоден для использования (затем не показывает его), и его можно использовать в портал. Правильно ли я считаю, что это безнадежное дело?

$scaleoutRule = New-AzAutoscaleRule -MetricName "$myCustomMetricName" `
    -MetricResourceId "/subscriptions/$sub/resourceGroups/$rg/providers/microsoft.insights/components/$appInsightsAccountName" `
    -Operator GreaterThan `
    -MetricStatistic Average `
    -Threshold 30 `
    -TimeAggregationOperator Count `
    -TimeGrain 00:01:00 `
    -TimeWindow 00:10:00 `
    -ScaleActionCooldown 00:10:00 `
    -ScaleActionDirection Increase `
    -ScaleActionScaleType ChangeCount `
    -ScaleActionValue "1"

$Profile1 = New-AzAutoscaleProfile -DefaultCapacity "2" `
    -MaximumCapacity "10" `
    -MinimumCapacity "2" `
    -Rule $Rule1 -Name "default"


Add-AzAutoscaleSetting -Location 'eastus2' `
    -Name "mySetting" `
    -ResourceGroupName "$rg" `
    -TargetResourceId "/subscriptions/$sub/resourceGroups/$rg/providers/Microsoft.Compute/virtualMachineScaleSets/$azvmss" `
    -AutoscaleProfile $Profile1

Это часто встречается с

Add-AzAutoscaleSetting : Exception type: ErrorResponseException, Message: Exception of type 'Microsoft.WindowsAzure.Management.Monitoring.MonitoringServiceException' was thrown., Code: UnsupportedMetric, 
Status code:BadRequest, Reason phrase: Bad Request    
 + CategoryInfo          : CloseError: (:) [Add-AzAutoscaleSetting], PSInvalidOperationException

+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Insights.Autoscale.AddAzureRmAutoscaleSettingCommand

1 Ответ

0 голосов
/ 12 июля 2019

Для VMSS в Azure у вас есть 3 варианта автоматического масштабирования на основе метрик

  • Метрики на основе хоста
  • Метрики на основе гостя
  • Метрики на основе приложения

https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-autoscale-overview

Для создания правил автомасштабирования через PowerShell вы можете найти доступные варианты здесь:

https://docs.microsoft.com/en-us/powershell/module/AzureRM.Insights/New-AzureRmAutoscaleRule?view=azurermps-6.13.0

В общем, вы можете создатьпользовательские правила автомасштабирования, однако они должны основываться на текущих доступных метриках, которые мы предоставляем, а не на пользовательских метриках.Поэтому я бы посоветовал вам найти наиболее подходящие варианты в перечисленных выше документах и ​​использовать этот показатель для масштабирования вашей VMSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...