Azure - 虚拟机规模集指标收集

Azure - Virtual Machine Scale Sets Metric collection

我想通过 cli 以类似于虚拟机指标的方式为虚拟机规模集 (VMSS) 中的实例收集机器指标(总体上也会这样做)命令 - az vm monitor metrics (LINK) - 因为它的输出适合我的用例,所以我无法为此找到解决方案,也不确定在哪里寻找这样的解决方案,因为我可以收集VMSS 实例名称,但是它们存在于资源组外部和 VMSS 内部,因此上述命令不起作用。

来自命令 az vm monitor metrics 的示例 CLI 摘录,我需要从 VMSS 机器

 "timeseries": [
        {
          "data": [
            {
              "average": 89.425,
              "count": null,
              "maximum": null,
              "minimum": null,
              "timeStamp": "2021-12-31T18:10:00+00:00",
              "total": null
            },...

谢谢

编辑:添加了详细信息

  • 您可以控制要监控的指标,例如 CPU 或磁盘、应用程序负载必须满足给定阈值的时间长度,以及要添加到规模集中的 VM 实例数.

  • 您可以使用 az monitor autoscale rule create 创建一个规则,当平均 CPU 负载超过 5-5% 时增加规模集中 VM 实例的数量分钟的时间。当规则触发时,VM 实例的数量增加三个。

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

可以参考Automatically scale a virtual machine scale set with the Azure CLI

由于 Microsoft 没有提供用于从 az vm monitor 命令检索指标的 CLI 命令,因此解决方法是使用 Python MonitorManagmentClient,使用 resource_id如下:

resource_id = (
        "subscriptions/{}/"                                     
        "resourceGroups/{}/"
        "providers/Microsoft.Compute/virtualmachineScaleSets/{}"
    ).format(subscription_id, resource_group_name, vm_name)

此位允许您根据需要从 virtualMachineScaleSets 中获取指标。