使用Powershell创建AutoScale规则时如何指定Custom / AppInsights指标?

时间:2019-07-11 20:30:41

标签: azure azure-application-insights azure-vm-scale-set

我希望使用Azure Powershell禁用在部署期间创建的AZVMSS上的自动缩放,以避免部署服务器与部署服务器之间的挂起(问题是我们的软件试图一次做太多事情,并且它需要5分钟的部署才能花费一个小时,但这是另一个时间的问题。

通过一些实验,我了解到,我们通过Powershell认为写给应用程序见解的自定义指标不是“有效”的,而是在门户中有效的,因为我可以选择它并手动制定一条规则。

当我在JSON中查找自动缩放设置时,我会看到指标的名称并将其复制粘贴到脚本中。它与我创建的应用程序见解帐户的下拉菜单中的“可见”选项匹配,并且可以在门户中看到。但是,当我运行命令时,powershell告诉我参数无效。

我只是不允许使用自定义指标吗? 我还注意到脚本中不允许使用“ Last”作为TimeAggregationOperator类型,即使文档说它是可用的(然后不显示它)并且在文档中也是可用的 我是否认为这是一个失败的原因?

tsconfig.json

这经常遇到

$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

1 个答案:

答案 0 :(得分:0)

对于Azure中的VMSS,您有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。