AWS CLI get-metric-statistics

时间:2016-08-19 01:21:20

标签: amazon-web-services aws-cli

我试图从我的ec2实例请求CPUUtilization并使用以下命令流动this Command Reference

aws cloudwatch get-metric-statistics --metric-name CPUUtilization --start-time 2016-08-08T22:48:00 --end-time 2016-08-08T22:53:00 --period 60 --namespace AWS/EC2 --statistics Maximum --dimensions Name=InstanceId,Value=i-myinstanceid

我的回答是:

{
    "Datapoints": [
        {
            "Timestamp": "2016-08-08T22:51:00Z",
            "Maximum": 0.17,
            "Unit": "Percent"
        }
    ],
    "Label": "CPUUtilization"
}

但是不应该在1分钟内返回带有时间戳的数据点吗?

1 个答案:

答案 0 :(得分:2)

无法从Amazon CloudWatch中检索实际数据点

相反,CloudWatch会在一段时间内提供汇总指标(例如,Average,SampleCount,Sum)。

来自CloudWatch documentation

  

Amazon CloudWatch根据您在GetMetricStatistics调用中指定的期间长度汇总统计信息。您可以使用相同或相似的时间戳发布任意数量的数据点。当您使用GetMetricStatistics获取有关这些数据点的统计信息时,CloudWatch会按周期长度对它们进行聚合。

但是,正如您所指出的,CloudWatch应该在给定的时间段内返回多个值。

我接受了你的命令并在我的一个实例上运行它。我发现,通过延长时间范围,我可以得到多个值:

{
    "Datapoints": [
        {
            "Timestamp": "2016-08-08T22:52:00Z", 
            "Maximum": 0.0, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-08-08T22:47:00Z", 
            "Maximum": 0.17, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-08-08T22:42:00Z", 
            "Maximum": 0.16, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-08-08T22:37:00Z", 
            "Maximum": 0.17, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}

请注意,我的数据点仅返回每5分钟。这是因为Amazon EC2实例的标准监控仅每5分钟捕获一次指标。要以1分钟为间隔获取指标,您需要Enable Detailed Monitoring。 (额外收费。)