AWS CloudWatch监视网络 - 无数据点



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

为此,我用CloudWatchClient(带有phpsdk(测量网络。问题是,当我将"周期"放到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'),
    ]);

谢谢

默认情况下,EC2 CloudWatch指标仅在5分钟(300秒(间隔内可用。要以60秒的间隔进行监视,您需要为给定实例启用EC2详细监视。从文档中:

数据可在1分钟的时间内获得额外的费用。要获得此级别的数据,您必须为实例特别启用它。对于启用了详细监视的实例,您还可以在类似实例的组中获取汇总数据。

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

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