UNPKG

@cloud-carbon-footprint/core

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions.

29 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("../."); const ENERGY_ESTIMATION_FORMULA = (averageCPUUtilization, virtualCPUHours, minWatts, maxWatts, powerUsageEffectiveness, replicationFactor = 1, averageWatts) => { const calculatedAverageWatts = averageWatts ? averageWatts : minWatts + (averageCPUUtilization / 100) * (maxWatts - minWatts); return ((calculatedAverageWatts * virtualCPUHours * powerUsageEffectiveness * replicationFactor) / 1000); }; class ComputeEstimator { estimate(data, region, emissionsFactors, constants) { return data.map((usage) => { const estimatedKilowattHours = ENERGY_ESTIMATION_FORMULA(usage.cpuUtilizationAverage, usage.vCpuHours, constants.minWatts, constants.maxWatts, constants.powerUsageEffectiveness, constants.replicationFactor, constants.averageWatts); const estimatedCO2Emissions = (0, _1.estimateCo2)(estimatedKilowattHours, region, emissionsFactors); return { timestamp: usage.timestamp, kilowattHours: estimatedKilowattHours, co2e: estimatedCO2Emissions, usesAverageCPUConstant: usage.usesAverageCPUConstant, }; }); } } exports.default = ComputeEstimator; //# sourceMappingURL=ComputeEstimator.js.map