我正在尝试查看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'),
]);
由于
答案 0 :(得分:1)
默认情况下,EC2 CloudWatch指标仅在5分钟(300秒)的时间间隔内可用。要以60秒的间隔监视此情况,您需要enable EC2 detailed monitoring来获取给定的实例。来自文档:
数据可在1分钟内获得,需支付额外费用。要获得此级别的数据,您必须专门为该实例启用它。对于您已启用详细监控的实例,您还可以跨类似实例的组获取聚合数据。
您可以从此AWS控制台或CLI / SDK启用此功能。 CLI示例,来自上面的链接文档:
aws ec2 monitor-instances --instance-ids i-1234567890abcdef0