我为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
如果我将$metricname
更改为任何主机指标("百分比CPU"例如),此代码可以正常工作,但我需要获取内存信息。
注意:这是在PowerShell 5.1中,我发现我可以在PowerShell v3中使用几乎相同的代码($history.metricvalues
而不是$history.data
),我可以进入 [访客] 指标,但不包含任何主机指标。
答案 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输出:
作为一种解决方法,我们可以使用OMS来获取内存使用情况,有关在OMS上配置性能计数器的更多信息,请参阅此link。
<强>更新强>:
您是对的,我们可以在Azure PowerShell 3.4.0版上运行此命令,它运行正常。
当我们在版本3.4.0上运行此命令时,我们将收到此警告:
警告:API弃用:将使用旧版指标API 在下一个版本中停止。这意味着呼叫的变化 以及此cmdlet的输出。 这是PowerShell输出:
作为一种解决方法,我们可以通过REST API导出指标,有关它的更多信息,请参阅此link。