AWS-SDK CloudWatch MaxQueryTimerangeExceed

发布于 2025-02-12 04:42:26 字数 1162 浏览 2 评论 0原文

我是AWS SDK(和nodejs)的新手,我正在尝试让CloudWatch的GetMetricData工作。我使用简单的CloudWatch查询来获取实例的CPU利用率。但是无论我做什么,我一直在

{
  ResponseMetadata: { RequestId: '5253fbfc-5aa2-4dfb-871b-1453f8610d80' },
  MetricDataResults: [
    {
      Id: 'q1',
      Label: 'q1',
      Timestamps: [],
      Values: [],
      StatusCode: 'Complete',
      Messages: []
    }
  ],
  Messages: [
    {
      Code: 'MaxQueryTimeRangeExceeded',
      Value: 'Max time window exceeded for query'
    }
  ]
}

这里得到这个是我的代码

const AWS = require("aws-sdk");
AWS.config.loadFromPath("./config.json");

var cloudwatch = new AWS.CloudWatch({apiVersion: "2010-08-01"});

var params = {

    StartTime: new Date('june 06, 2022 17:30'),
    EndTime: new Date('june 06, 2022 18:00'), 
    MetricDataQueries: [ 
      {
        Id: 'q1', 
        Expression: "SELECT AVG(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId) WHERE InstanceId = 'i-**********'",
        Period: '600'
      },
    ],
    
  };
  cloudwatch.getMetricData(params, function(err, data) {
    if (err) console.log(err, err.stack); 
    else     console.log(data);           
  });

I am new to AWS SDK (and nodejs) and I am trying to get cloudwatch's getMetricData to work. Im using a simple Cloudwatch query to grab the CPU utilization of an instance. But no matter what I do, I just keep getting this

{
  ResponseMetadata: { RequestId: '5253fbfc-5aa2-4dfb-871b-1453f8610d80' },
  MetricDataResults: [
    {
      Id: 'q1',
      Label: 'q1',
      Timestamps: [],
      Values: [],
      StatusCode: 'Complete',
      Messages: []
    }
  ],
  Messages: [
    {
      Code: 'MaxQueryTimeRangeExceeded',
      Value: 'Max time window exceeded for query'
    }
  ]
}

here is my code

const AWS = require("aws-sdk");
AWS.config.loadFromPath("./config.json");

var cloudwatch = new AWS.CloudWatch({apiVersion: "2010-08-01"});

var params = {

    StartTime: new Date('june 06, 2022 17:30'),
    EndTime: new Date('june 06, 2022 18:00'), 
    MetricDataQueries: [ 
      {
        Id: 'q1', 
        Expression: "SELECT AVG(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId) WHERE InstanceId = 'i-**********'",
        Period: '600'
      },
    ],
    
  };
  cloudwatch.getMetricData(params, function(err, data) {
    if (err) console.log(err, err.stack); 
    else     console.log(data);           
  });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别把无礼当个性 2025-02-19 04:42:26

您只能使用选择...语法请求最新的3个小时数据。

来自 docs

指标见解查询只能查询最近三个小时
公制数据。

看起来您只为一个实例获得cpuutilization。您可以使用metricstat对象获得它。这样的事情:

var params = {

    StartTime: new Date('june 06, 2022 17:30'),
    EndTime: new Date('june 06, 2022 18:00'), 
    MetricDataQueries: [ 
      {
      Id: 'm1',
      Label: 'CPUUtilization',
      MetricStat: {
        Metric: {
          Namespace: 'AWS/EC2',
          MetricName: 'CPUUtilization',
          Dimensions: [
            {
              Name: 'InstanceId',
              Value: 'i-xxxxxxxxxx'
            }
          ]
        },
        Period: '600',
        Stat: 'Average'
      }
    },
    ],
    
  };

You can only request the latest 3 hours of data using the SELECT ... syntax.

From docs,

Metrics Insights queries can query only the most recent three hours of
metric data.

Looks like you're only getting the CPUUtilization for a single instance. You can get that with the MetricStat object. Something like this:

var params = {

    StartTime: new Date('june 06, 2022 17:30'),
    EndTime: new Date('june 06, 2022 18:00'), 
    MetricDataQueries: [ 
      {
      Id: 'm1',
      Label: 'CPUUtilization',
      MetricStat: {
        Metric: {
          Namespace: 'AWS/EC2',
          MetricName: 'CPUUtilization',
          Dimensions: [
            {
              Name: 'InstanceId',
              Value: 'i-xxxxxxxxxx'
            }
          ]
        },
        Period: '600',
        Stat: 'Average'
      }
    },
    ],
    
  };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文