in source/services/analytics-processing/lib/cloudwatch.js [64:87]
async buildMetric(payload) {
let metric = {
MetricName: payload.METRIC_NAME,
Timestamp: moment(payload.METRIC_TIMESTAMP).unix(),
Value: payload.METRIC_UNIT_VALUE_INT,
Unit: payload.METRIC_UNIT || 'None'
};
// Extract dimensions from input, populate dimensions array in format required by CloudWatch
// Strip DIMENSION_ prefix from metric before publishing
let dimensions = [];
for (var key in payload) {
if (key.includes('DIMENSION_') && (payload[key] !== null && payload[key] != "" && payload[key] != "null")) {
dimensions.push({
'Name': key.split("DIMENSION_").pop(),
'Value': payload[key]
});
}
}
if (dimensions.length > 0) {
metric.Dimensions = dimensions;
}
return Promise.resolve(metric);
}