如何通过Azure REST API获取虚拟机CPU使用率指标?
获取Azure虚拟机CPU使用率的REST API URL及使用说明
我来帮你搞定这个问题——要获取虚拟机的CPU使用率,你得用Azure Monitor的指标API,而不是你现在调用的Compute资源详情API。
正确的API URL格式
获取VM CPU指标的GET请求URL结构如下:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=Percentage CPU&aggregation=Average×pan=<开始时间>/<结束时间>
参数详解
- 先把
{subscriptionId}、{resourceGroupName}、{vmName}替换成你自己的实际值 api-version:推荐用2018-01-01,这是一个稳定且功能完善的版本,比旧版本更可靠metricnames:必须指定为Percentage CPU(注意空格要保留,或者URL编码成Percentage+CPU也可以),这是Azure中对应CPU使用率的指标名称aggregation:选择指标的聚合方式,常用的有:Average:时间段内的平均CPU使用率Maximum:时间段内的CPU峰值Minimum:时间段内的CPU最低值
timespan:设置查询的时间范围,格式为ISO 8601标准的开始时间/结束时间,比如2024-05-20T00:00:00Z/2024-05-20T12:00:00Z就代表查询当天0点到12点的数据
额外可选参数
interval:指定数据的时间粒度,比如PT5M代表5分钟间隔,PT1H代表1小时间隔,默认会根据时间范围自动调整- 如果你想一次性获取多个指标,可以用逗号分隔
metricnames的值,比如metricnames=Percentage CPU,Network In,Network Out
认证要求
和你调用Compute API一样,请求头里必须带上Authorization: Bearer <你的访问令牌>,而且这个令牌需要拥有Microsoft.Insights/metrics/read的权限,否则会返回权限不足的错误。
实际示例
假设你的订阅ID是12345678-1234-1234-1234-1234567890ab,资源组是myResourceGroup,VM名称是myVM,要查询过去24小时的每小时平均CPU使用率,最终的URL就是:
https://management.azure.com/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=Percentage CPU&aggregation=Average×pan=2024-05-19T12:00:00Z/2024-05-20T12:00:00Z&interval=PT1H
内容的提问来源于stack exchange,提问作者Steel Edward Vazquez George
相关产品推荐
相关产品推荐

