我正在尝试收集虚拟机的性能,如CPU利用率、可用内存、逻辑磁盘MB/s和逻辑磁盘IOPS,这些数据可以通过控制台在洞察下查看。我希望收集这些数据并将其保存到CSV文件中。是否有任何API可用于获取包含平均值、最小值、最大值、第50位、第90位和第95位的数据?
我尝试了以下解决方案:
- az监视度量命令:az监视器度量列表--资源{ResourceName} --度量“CPU百分比”
- API:https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=Percentage CPU&时间跨度={开始时间}/{结束时间}&间隔= PT 1H &聚合=平均值
- Microsoft Azure监视器客户端库(Python SDK):蓝色管理监视器
在上述所有方法中,我得到的结果不是CPU利用率,而是“CPU百分比”,也就是说,这些方法给出的指标不是洞察力。
1条答案
按热度按时间v8wbuo2f1#
一种可能的解决方案是使用Azure Monitor REST API,它允许你从虚拟机收集各种指标。你可以在请求URL中指定指标名称、时间跨度、间隔和聚合参数。例如:
此请求将返回指定时间跨度内每小时每个度量的平均值、计数、最大值、最小值和总值。您还可以使用其他聚集类型,如百分比。
另一种可能的解决方案是使用Azure Monitor Library for Python,它为REST API提供了 Package 。你可以安装
azure-mgmt-monitor
包并使用MetricsOperations
类中的list
方法来获取指标数据。例如:此代码将返回与REST API请求类似的结果。
要将指标数据保存到CSV文件中,可以使用Python内置的
csv
模块或其他库(如pandas
),可以迭代metrics_data.value
中的每个指标值对象,并将其属性写入CSV文件的一行中。