要回答这个问题:
空数据点输出可能由于多种原因返回,但通常意味着 CloudWatch 中没有针对您的给定输入的数据。确保您的输入是正确的,并且有给定时间段的数据。
我能够在以下场景中重现空数据点,让您了解这如何产生空结果:
- 更改了我的 InstanceId 上的一个字母,使其与我的任何实例都不匹配;这不会出错,只会产生空数据集。
- 将时间范围更改为实例处于运行状态之前。
- 在 powershell 中使用了不正确的权限,因此我使用的配置文件无权查看我要求的实例。
对于它的价值,您的语法是有效的。我针对我自己的一个实例测试了您的确切 cmdlet,它运行良好。一旦您的示例工作,您可以通过管道生成的集合并解析它们来获取原始数据点。例如,假设您的 cmdlet 的输出位于$datapoints
:
$datapoints | % { $_.Datapoints.Average }
要回答评论:
语法-Dimension @{Name = "InstanceId"; Value = "08b290d4ab98f79c3"}
对此 cmdlet 有效。它看起来很奇怪,因为 Get-CWMetricStatistics cmdlet 要求您传入AWS.CloudWatch.Model.Dimension对象的集合。
在此示例中,具有匹配属性名称(名称和值)的哈希表就足够了,但给定的示例@{'InstanceId'='08b290d4ab98f79c3'}
不会,因为 AWS.CloudWatch.Model.Dimension 上没有“InstanceId”参数。
实际上,运行返回此错误:
Get-CWMetricStatistics:无法绑定参数“维度”。无法创建“Amazon.CloudWatch.Model.Dimension”类型的对象。找不到 Amazon.CloudWatch.Model.Dimension 对象的 InstanceId 属性。可用的属性是: [Name ] , [Value ]
还要考虑传递哈希表的集合是此 cmdlet 的有效输入:
-Dimension @(@{Name = "InstanceId"; Value = "i-abcd1234"},@{Name = "InstanceId"; Value = "i-efgh5678"})
延伸阅读:
AWS PowerShell 文档 - Get-CWMetricStatistics