@cloud-carbon-footprint/core
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions.
26 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _1 = require("../.");
class EmbodiedEmissionsEstimator {
constructor(serverExpectedLifespan) {
this.serverExpectedLifespan = serverExpectedLifespan;
}
estimate(data, region, emissionsFactors) {
return data.map((data) => {
const estimatedCO2Emissions = this.estimateCo2e(data.usageTimePeriod, data.instancevCpu, data.largestInstancevCpu, data.scopeThreeEmissions);
const estimatedKilowattHours = (0, _1.estimateKwh)(estimatedCO2Emissions, region, emissionsFactors);
return {
co2e: estimatedCO2Emissions,
timestamp: data.timestamp,
kilowattHours: estimatedKilowattHours,
};
});
}
estimateCo2e(usageTimePeriod, instancevCpu, largestInstancevCpu, scopeThreeEmissions) {
return (scopeThreeEmissions *
(usageTimePeriod / this.serverExpectedLifespan) *
(instancevCpu / largestInstancevCpu));
}
}
exports.default = EmbodiedEmissionsEstimator;
//# sourceMappingURL=EmbodiedEmissionsEstimator.js.map