无法使用Get-AzureRmMetric访问[Guest]指标

时间:2017-09-16 21:03:48

标签: powershell azure metrics azure-powershell

我为Azure虚拟机启用了来宾级指标,并尝试使用Get-AzureRMMetric获取 [Guest] \ Memory \ Committed Bytes 属性的历史记录。

$endTime = Get-Date
$startTime = $endTime.AddMinutes(-540)
$timeGrain = '00:05:00'
$metricName = '\Memory\Committed Bytes'


$history=(Get-AzureRmMetric -ResourceId $resourceId `
-TimeGrain $timeGrain -StartTime $startTime `
-EndTime $endTime `
-MetricNames $metricName)

$history.data | Format-table -wrap Average,Timestamp,Maxiumim,Minimum,Total

我收到以下错误: enter image description here

如果我将$metricname更改为任何主机指标("百分比CPU"例如),此代码可以正常工作,但我需要获取内存信息。

注意:这是在PowerShell 5.1中,我发现我可以在PowerShell v3中使用几乎相同的代码($history.metricvalues而不是$history.data),我可以进入 [访客] 指标,但不包含任何主机指标。

Powershell v3 example

1 个答案:

答案 0 :(得分:1)

目前,Azure PowerShell支持支持Get-AzureRmMetric获取memory usage指标。

我们可以使用Get-AzureRmMetricDefinition来获取支持的指标:

以下是Azure VM的指标:

PS D:\testdata> (Get-AzureRmMetricDefinition -ResourceId $id).name

Value                     LocalizedValue
-----                     --------------
Percentage CPU            Percentage CPU
Network In                Network In
Network Out               Network Out
Disk Read Bytes           Disk Read Bytes
Disk Write Bytes          Disk Write Bytes
Disk Read Operations/Sec  Disk Read Operations/Sec
Disk Write Operations/Sec Disk Write Operations/Sec
CPU Credits Remaining     CPU Credits Remaining
CPU Credits Consumed      CPU Credits Consumed

关于Azure VM的受支持指标,请参阅此官方article

然后我们可以使用该值来获取其他指标:

Get-AzureRmMetric -ResourceId $id -TimeGrain 00:01:00 -DetailedOutput -MetricNames "Network in"

这是我的PowerShell输出:

enter image description here

作为一种解决方法,我们可以使用OMS来获取内存使用情况,有关在OMS上配置性能计数器的更多信息,请参阅此link

<强>更新

您是对的,我们可以在Azure PowerShell 3.4.0版上运行此命令,它运行正常。

当我们在版本3.4.0上运行此命令时,我们将收到此警告:

  

警告:API弃用:将使用旧版指标API   在下一个版本中停止。这意味着呼叫的变化   以及此cmdlet的输出。   这是PowerShell输出:   enter image description here

作为一种解决方法,我们可以通过REST API导出指标,有关它的更多信息,请参阅此link