如何在单个 API 调用中获取单个 VM 的多个 VM 指标(百分比 CPU、磁盘读取操作/秒、内存等 .. 平台指标)详细信息

Posted

技术标签:

【中文标题】如何在单个 API 调用中获取单个 VM 的多个 VM 指标(百分比 CPU、磁盘读取操作/秒、内存等 .. 平台指标)详细信息【英文标题】:How to get multiple VM metric (Percentage CPU, DIisk Read Operations/sec, Memory etc .. platform metrics) details in a single API Call for a single VM 【发布时间】:2021-07-21 10:17:15 【问题描述】:

喜欢来自 URL GET https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/vmname/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=Percentage%20CPU&timespan=2018-06-05T03:00:00Z/2018-06-07T03:00:00Z

我们一次只能获取一个指标“CPU 百分比”。

我想在一个 API 调用中为单个 VM 获取百分比 CPU、内存、磁盘网络等指标。

这可能吗?

【问题讨论】:

【参考方案1】:

您可以在请求 URL 中通过metricnames 参数指定要查询的所有指标,并用, 分隔,如下所示:

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,Disk Read Bytes,Disk Write Bytes,Network In,Network Out&timespan=2018-06-05T03:00:00Z/2018-06-07T03:00:00Z

结果:

所有原生支持的指标是:

Percentage CPU,Network In,Network Out,Disk Read Bytes,Disk Write Bytes,Disk Read Operations/Sec,Disk Write Operations/Sec,CPU Credits Remaining,CPU Credits Consumed,Data Disk Read Bytes/sec,Data Disk Write Bytes/sec,Data Disk Read Operations/Sec,Data Disk Write Operations/Sec,Data Disk Queue Depth,Data Disk Bandwidth Consumed Percentage,Data Disk IOPS Consumed Percentage,Data Disk Target Bandwidth,Data Disk Target IOPS,Data Disk Max Burst Bandwidth,Data Disk Max Burst IOPS,Data Disk Used Burst BPS Credits Percentage,Data Disk Used Burst IO Credits Percentage,OS Disk Read Bytes/sec,OS Disk Write Bytes/sec,OS Disk Read Operations/Sec,OS Disk Write Operations/Sec,OS Disk Queue Depth,OS Disk Bandwidth Consumed Percentage,OS Disk IOPS Consumed Percentage,OS Disk Target Bandwidth,OS Disk Target IOPS,OS Disk Max Burst Bandwidth,OS Disk Max Burst IOPS,OS Disk Used Burst BPS Credits Percentage,OS Disk Used Burst IO Credits Percentage,Inbound Flows,Outbound Flows,Inbound Flows Maximum Creation Rate,Outbound Flows Maximum Creation Rate,Premium Data Disk Cache Read Hit,Premium Data Disk Cache Read Miss,Premium OS Disk Cache Read Hit,Premium OS Disk Cache Read Miss,VM Cached Bandwidth Consumed Percentage,VM Cached IOPS Consumed Percentage,VM Uncached Bandwidth Consumed Percentage,VM Uncached IOPS Consumed Percentage,Network In Total,Network Out Total

如果您想获取与内存相关的指标,see this post。

【讨论】:

我们还能在同一个调用中获取按平均值和最大值聚合的数据吗?我试过这个,但不适合我。 只有聚合 = 平均值对我有用。无法获取 Max 或 Min 或 Sum 或 all 的数据(由 , 分隔) 试试aggregation = maximum吧,官方文档好像还没更新 @user3726056,顺便说一句,如果我的帖子有帮助,请点击我帖子旁边的复选标记接受它:)【参考方案2】:

Azure 允许获取其文档中提到的多个指标

图像已从 Azure 文档中选取 https://docs.microsoft.com/en-us/rest/api/monitor/metrics/list

*注意:虽然它允许多个指标,但限制上限为 20。如果指定的指标名称超过 20 个,则会出错 “请求的指标计数:21 大于允许的最大值:20”

【讨论】:

以上是关于如何在单个 API 调用中获取单个 VM 的多个 VM 指标(百分比 CPU、磁盘读取操作/秒、内存等 .. 平台指标)详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何从单个谷歌帐户的多个谷歌日历中获取所有事件?

如何获取我们无法通过 Zoho Creator 中的单个 API 调用获取的剩余记录?

如何使用 Facebook 营销 api 在单个查询中获取所有广告的见解

C#开发BIMFACE系列24 服务端API之获取模型数据9:获取单个房间信息

单个网格中的多个 API 调用

如何从API调用中选择单个JavaScript对象/ JSON项目