我需要获取 Azure 应用服务的一些指标。值是 CPU(以 % 为单位)和消耗的内存(以 % 为单位)。例如,我想报告 CPU 在一段时间内是否较高,以便指示应用服务正在消耗较高的内存或资源,然后发送电子邮件。
我目前正在使用
Get-AzMetricDefinition -ResourceId
"/subscriptions/<subscriptionid>/resourceGroups/Default-Web-
EastUS/providers/microsoft.web/sites/website2" -DetailedOutput -MetricName
"BytesSent,CpuTime"
但是从中我如何获得% CPU 和% 内存。或者有不同的 Powershell 命令吗?
最佳答案
使用 PowerShell 获取 Azure 应用服务的 CPU 使用情况:
有一个名为 Get-AZMetric
的 Azure PowerShell 命令,用于从特定资源(例如:应用服务)获取所有指标数据。但是,如果您复制 Web 的 resourceID
,则 CPU %
不是 Get-AZMetric
支持的参数应用程序属性,因为它是云服务 ID。
我们可以为整个 AppServicePlan
实现它,因为 CPU %
在这里支持。
如果应用服务托管在高级、标准和基本套餐中,由于扩展功能,CPU%
将会出现,而 CPU_Time
在托管在免费或共享套餐中时会很有帮助。应用服务计划。
get-azmetric -resourceID "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Web/sites/<AppService>" -MetricName "CpuTime" -DetailedOutput
经过调查,我找到了一种在 AppServicePlan 的帮助下通过获取资源 ID 来实现它的方法,如下所示:
az monitor metrics list --resource "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Web/serverfarms/<AppservicePlan>" --metrics "CpuPercentage","MemoryPercentage"
CPU 百分比指标:
内存百分比指标:
注意:
- 通过门户查看支持的指标,只需点击
“诊断并解决问题”
(如果需要)。
关于azure - 如何使用 Powershell 获取 Azure 应用服务的 CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74439303/