UNPKG

@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
"use strict"; 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