azcosts
Version:
Azcosts is a CLI tool for generating Azure infrastructure cost reports
35 lines (27 loc) • 1.19 kB
JavaScript
;
module.exports = (usage, rates) => {
usage.map(metric => {
const re = /\/resourceGroups\/([a-zA-Z0-9_-]+)\//;
let rate = rates[metric.meterId];
let instanceData = metric.instanceData ? JSON.parse(metric.instanceData)['Microsoft.Resources'] : {};
let segments = instanceData.resourceUri ? instanceData.resourceUri.split('/') : ['Others'];
let matchs = instanceData.resourceUri ? re.exec(instanceData.resourceUri) : [];
metric.rate = rate;
metric.cost = rate * metric.quantity;
metric.day = metric.usageEndTime;
metric.resourceUri = instanceData.resourceUri ? instanceData.resourceUri : 'others';
metric.location = instanceData.location;
metric.tags = instanceData.tags;
metric.resourceGroup = matchs && matchs[1] ? matchs[1] : '';
metric.name = segments[segments.length - 1];
delete metric.id;
delete metric.type;
delete metric.meterId;
delete metric.usageStartTime;
delete metric.usageEndTime;
delete metric.instanceData;
delete metric.infoFields;
return metric;
});
return usage;
};