AWS Powershell - 用于EBS的Get-CWMetricStatistics读取IOPS

问题描述 投票:0回答:1

我在使用以下代码获取EBS卷的IOPs统计数据时遇到了一些问题:

Get-CWMetricList -Namespace AWS/EC2 |Select-Object * -Unique

Get-CWMetricList -Namespace AWS/EBS |Select-Object * -Unique

$StartDate = (Get-Date).AddDays(-3)
$EndDate = Get-Date
$ReadIOPS = Get-CWMetricStatistics -Namespace "AWS/EC2" -MetricName "DiskReadOps" -UtcStartTime $StartDate -UtcEndTime $EndDate -Period 300 -Statistics @("Average") 
$ReadIOPS.Datapoints.Count  
$ReadIOPS = Get-CWMetricStatistics  -Namespace "AWS/EBS" -MetricName "VolumeReadOps" -UTCStartTime $StartDate -UTCEndTime $EndDate -Period 300  -Statistics @("Average")
$ReadIOPS.Datapoints.Count

前2行显示命名空间/度量标准名称是正确的。 Rest应显示AWS / EC2名称空间中的第一个查询获取数据,但AWS / EBS命名空间中的第二个查询不会。

最终目标是添加一个-dimension标记并获取特定容量的所有读/写iops。这就是AWS / EC2命名空间无法工作的原因,因为我需要指定卷ID而不是实例ID。

任何想法为什么我没有在后一个查询中获取任何数据点?

amazon-web-services powershell aws-powershell
1个回答
0
投票

事实证明,EBS统计数据需要指定Vol ID,尽管这不会被调出或错误。

在故障排除时,我已经删除了尽可能宽的网络/返回基础知识。在修复问题时添加回来:

即。这很有效

$Volume = 'vol-blah'
$dimension1 = New-Object Amazon.CloudWatch.Model.Dimension
$dimension1.set_Name("VolumeId")
$dimension1.set_Value($Volume)
$ReadIOPS = Get-CWMetricStatistics -Namespace "AWS/EBS" -MetricName "VolumeReadOps" -UTCStartTime $StartDate -UTCEndTime $EndDate -Period 300  -Statistics @("Average") -Dimension $dimension1
$ReadIOPS.Datapoints.Count
© www.soinside.com 2019 - 2024. All rights reserved.