AWS CloudWatch Monitoring NetworkIn - 无数据点

时间:2017-04-28 12:27:03

标签: amazon-web-services amazon-ec2 amazon-cloudwatch

我正在尝试查看AWS上的EC2实例是否正在从流服务接收流量(如果没有收到流量,我计划关闭该实例)。

为此,我使用CloudWatchClient(使用phpSDK)测量NetworkIn。问题是,当我将'Period'设置为60秒时,我没有收到任何数据点。如果我将周期设置为300(并将开始和结束时间调整为300秒间隔),相同的代码工作正常吗?

 $time_const     =   60;// in sec
 $end_time       =   time();
 $start_time     =   $end_time-$time_const;


 $result = $cloudwatch_client->getMetricStatistics([
    'Dimensions' => [
        [
            'Name' => 'InstanceId', // REQUIRED
            'Value' => $InstanceId, // REQUIRED
        ],
    ],
    'EndTime'       => $end_time, // REQUIRED
    'StartTime'     => $start_time, // REQUIRED       
    'MetricName'    => 'NetworkIn', // REQUIRED
    'Namespace'     => 'AWS/EC2', // REQUIRED
    'Period'        => $time_const, // REQUIRED 
    'Unit'          => 'Bytes',
    'Statistics'    => array('Sum'),
    ]);

由于

1 个答案:

答案 0 :(得分:1)

默认情况下,EC2 CloudWatch指标仅在5分钟(300秒)的时间间隔内可用。要以60秒的间隔监视此情况,您需要enable EC2 detailed monitoring来获取给定的实例。来自文档:

  

数据可在1分钟内获得,需支付额外费用。要获得此级别的数据,您必须专门为该实例启用它。对于您已启用详细监控的实例,您还可以跨类似实例的组获取聚合数据。

您可以从此AWS控制台或CLI / SDK启用此功能。 CLI示例,来自上面的链接文档:

aws ec2 monitor-instances --instance-ids i-1234567890abcdef0