Node.js AWS节点SDK云监视返回零数据点
我正试图通过Cloud WatchNode.js AWS节点SDK云监视返回零数据点,node.js,amazon-web-services,aws-sdk,amazon-cloudwatch,Node.js,Amazon Web Services,Aws Sdk,Amazon Cloudwatch,我正试图通过Cloud WatchgetMetricStatistics获取S3存储桶的大小(BucketSizeBytes) 我觉得我已经完成了所有设置,但是SDK没有返回任何数据点: { ResponseMetadata: { RequestId: 'ad520gfd4-7764-11e7-8084-2718255a18ba' }, Label: 'BucketSizeBytes', Datapoints: [] } 我已设置一个节点应用程序,该应用程序运行以下代码: const
getMetricStatistics
获取S3存储桶的大小(BucketSizeBytes)
我觉得我已经完成了所有设置,但是SDK没有返回任何数据点:
{ ResponseMetadata: { RequestId: 'ad520gfd4-7764-11e7-8084-2718255a18ba' },
Label: 'BucketSizeBytes',
Datapoints: [] }
我已设置一个节点应用程序,该应用程序运行以下代码:
const AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
const cloudwatch = new AWS.CloudWatch();
var startTime = new Date(2017, 07, 15);
var endTime = new Date(2017, 08, 01);
var params = {
EndTime: endTime,
MetricName: 'BucketSizeBytes',
Namespace: 'AWS/S3',
Period: 3600,
StartTime: startTime,
Dimensions: [
{
Name: 'StorageType',
Value: 'StandardStorage'
}
],
Statistics: [
'Average'
],
Unit: 'Bytes'
};
cloudwatch.getMetricStatistics(params, function(err, data){
if(err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
我在配置文件中仔细检查了我的区域,该文件设置为Frankfurt(eu-central-1),为了确保这一点,我甚至尝试在同一个文件中连接到S3,该文件按预期列出了我的存储桶:
var S3 = new AWS.S3();
S3.listBuckets(function(err, data) {
if (err) { console.log("Error:", err); }
else {
for (var index in data.Buckets) {
var bucket = data.Buckets[index];
console.log("Bucket: ", bucket.Name, ' : ', bucket.CreationDate);
}
}
});
我还尝试在AWS cloud watch界面中设置完全相同的startDate和endDate,以确保它有数据。是的。所以我不明白为什么我得不到任何数据点?我能做些什么来修复它呢?结果问题出在我的日期变量上。我仍然习惯于Javascript日期是基于0的这一奇怪事实,所以我实际上是在尝试将来从一个日期范围获取数据(令人尴尬)。将日期变量替换为以下变量:
var startTime = new Date(2017, 06, 19); // 2017-07-18T22:00:00.000Z
var endTime = new Date(2017, 07, 02); // 2017-08-01T22:00:00.000Z
非常感谢你给我的小费。必须将其输入aws cli,这迫使我键入日期值,并且我得到了预期的结果 在这种情况下,我通常会发现转向aws cli并从一个简单的请求开始,该请求返回的结果远远超过我想要的结果,然后找出如何一次添加一个参数以获得较少的结果,直到得到我想要的结果。一旦您从CLI中找到了所需的内容,就可以很容易地将其转换为任何其他SDK,因为它们最终都与相同的后端服务API进行通信。试一试?这帮我找到了问题所在。非常感谢。嗨,我只是想知道
时段:3600
设置是否适合你?我用AWS JS SDK和CLI尝试了相同的配置,它只在白天返回数据。