async buildMetric()

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);
    }