I'm trying to build an app that monitors AWS instances by a given instance IP. Now, I managed to get a response from the instance but this is - the Datapoints returns empty. Constrains:
const winston = require('winston');
const { CloudWatchClient, GetMetricStatisticsCommand, ListMetricsCommand } = require("@aws-sdk/client-cloudwatch");
const config = require('config');
const region = config.get('region');
const cwClient = new CloudWatchClient({ region: region });
const getCPUUtilization = async (ip, timePeriod, interval) => {
let today = new Date();
let dateToStart = new Date();
let dateOffset = (24 * 60 * 60 * 1000) * timePeriod;
dateToStart.setTime(today.getTime() - dateOffset);
const params = {
Dimensions: [
{
Name: "InstanceId",
Value: "i-test",
}
],
Namespace: `AWS/EC2`,
MetricName: 'CPUUtilization',
Period: interval,
Unit: "Percent",
StartTime: dateToStart,
EndTime: today,
Statistics: ["Maximum", "Minimum", "Average"],
};
try {
return await cwClient.send(new GetMetricStatisticsCommand(params));
} catch (err) {
console.log(err);
}
}
module.exports = getCPUUtilization;
The output I'm getting:
{
'$metadata': {
httpStatusCode: 200,
requestId: '192bce9c-42b0-4820-9b66-ca0c8a4e0159',
extendedRequestId: undefined,
cfId: undefined,
attempts: 1,
totalRetryDelay: 0
},
Label: 'CPUUtilization',
Datapoints: []
}
I would really appreciate your help, thank you in advance