@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
36 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@cloud-carbon-footprint/common");
const AWSRegions_1 = require("../../AWSRegions");
const AWSInstanceTypes_1 = require("../../AWSInstanceTypes");
const domain_1 = require("../../../domain");
const core_1 = require("@cloud-carbon-footprint/core");
class RightsizingRecommendation {
constructor(init) {
Object.assign(this, init);
}
getVCpuHours(resourceDetails) {
if ((0, common_1.containsAny)(Object.keys(AWSInstanceTypes_1.BURSTABLE_INSTANCE_BASELINE_UTILIZATION), resourceDetails.InstanceType)) {
return (((parseFloat(resourceDetails.Vcpu) *
AWSInstanceTypes_1.BURSTABLE_INSTANCE_BASELINE_UTILIZATION[resourceDetails.InstanceType]) /
domain_1.AWS_CLOUD_CONSTANTS.AVG_CPU_UTILIZATION_2020) *
(0, common_1.getHoursInMonth)());
}
return parseFloat(resourceDetails.Vcpu) * (0, common_1.getHoursInMonth)();
}
getMappedRegion(region) {
return AWSRegions_1.AWS_MAPPED_REGION_NAMES_TO_CODES[region] || AWSRegions_1.AWS_REGIONS.UNKNOWN;
}
getComputeProcessors() {
return (AWSInstanceTypes_1.INSTANCE_TYPE_COMPUTE_PROCESSOR_MAPPING[this.instanceType] || [
core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN,
]);
}
getGPUComputeProcessors() {
return (AWSInstanceTypes_1.INSTANCE_TYPE_GPU_PROCESSOR_MAPPING[this.instanceType] || [
core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN,
]);
}
}
exports.default = RightsizingRecommendation;
//# sourceMappingURL=RightsizingRecommendation.js.map