我有一个instanceIds列表,我想要将其用作get-cwmetricstatistic的输入,以便输出一个汇总的云监控指标列表。我有获取instanceIds列表的代码,也有回调单个instanceId的汇总统计信息的代码。我正在努力在foreach-object中构建维度,以便正确传递instanceID。请看下面的示例代码...
我知道这样做是为了获得InstanceIds:
$instances = Get-EC2Instance -AccessKey $AccessKey -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken |
Select-Object -ExpandProperty Instances |
Select-Object InstanceId 我知道这样做可以获得单个instanceID的汇总统计信息:
$dimension = New-Object Amazon.CloudWatch.Model.Dimension
$dimension.set_Name("InstanceId")
$dimension.set_Value("i-xxxxxxxxxxxxxx")
$data = Get-CWMetricStatistic -AccessKey $AccessKey -Dimension $dimension -MetricName CPUUtilization -Namespace AWS/EC2 -Period 86400 -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken -Statistic Average -UtcEndTime 2019-09-28T04:00:00Z -UtcStartTime 2019-09-22T04:00:00Z
foreach($datapoint in $data.Datapoints){
Write-Host $dimension.Value $datapoint.Timestamp " " $datapoint.Average
}下面是尝试遍历不起作用的instanceIds列表的代码:
$instances = Get-EC2Instance -AccessKey $AccessKey -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken |
Select-Object -ExpandProperty Instances |
Select-Object InstanceId |
ForEach-Object {
$dimension = New-Object Amazon.CloudWatch.Model.Dimension
$dimension.set_Name("InstanceId")
$dimension.set_Value($instanceId)
$data = Get-CWMetricStatistic -AccessKey $AccessKey -Dimension $dimension -MetricName CPUUtilization -Namespace AWS/EC2 -Period 86400 -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken -Statistic Average -UtcEndTime 2019-09-28T04:00:00Z -UtcStartTime 2019-09-22T04:00:00Z
foreach($datapoint in $data.Datapoints){
Write-Host $dimension.Value $datapoint.Timestamp " " $datapoint.Average
}
}发布于 2019-09-27 05:25:22
解决方案:
$instances = Get-EC2Instance -AccessKey $AccessKey -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken |
Select-Object -ExpandProperty Instances |
ForEach-Object {
$dimension = New-Object Amazon.CloudWatch.Model.Dimension
$dimension.Set_Name("InstanceId")
$dimension.Set_Value($_.InstanceId)
$data = Get-CWMetricStatistic -AccessKey $AccessKey -Dimension $dimension -MetricName CPUUtilization -Namespace AWS/EC2 -Period 86400 -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken -Statistic Average -UtcEndTime 2019-09-28T04:00:00Z -UtcStartTime 2019-09-20T04:00:00Z
foreach($datapoint in $data.Datapoints){
Write-Host $dimension.Value $datapoint.Timestamp "CPUUtilization-Average" $datapoint.Average
}
} https://stackoverflow.com/questions/58105850
复制相似问题