首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于对象列表的AWS CloudWatchMetricStatistic

用于对象列表的AWS CloudWatchMetricStatistic
EN

Stack Overflow用户
提问于 2019-09-26 04:04:47
回答 1查看 130关注 0票数 0

我有一个instanceIds列表,我想要将其用作get-cwmetricstatistic的输入,以便输出一个汇总的云监控指标列表。我有获取instanceIds列表的代码,也有回调单个instanceId的汇总统计信息的代码。我正在努力在foreach-object中构建维度,以便正确传递instanceID。请看下面的示例代码...

我知道这样做是为了获得InstanceIds:

代码语言:javascript
复制
$instances = Get-EC2Instance -AccessKey $AccessKey -Region us-east-1 -SecretKey $SecretKey -SessionToken $SessionToken | 
Select-Object -ExpandProperty Instances | 
Select-Object InstanceId 

我知道这样做可以获得单个instanceID的汇总统计信息:

代码语言:javascript
复制
$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列表的代码:

代码语言:javascript
复制
$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 
}
}
EN

回答 1

Stack Overflow用户

发布于 2019-09-27 05:25:22

解决方案:

代码语言:javascript
复制
$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
}
} 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58105850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档