UNPKG

@cloud-carbon-footprint/aws

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.

56 lines 3.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@cloud-carbon-footprint/common"); const AWSInstanceTypes_1 = require("../../AWSInstanceTypes"); const core_1 = require("@cloud-carbon-footprint/core"); const ComputeOptimizerRecommendationWithProcessors_1 = __importDefault(require("./ComputeOptimizerRecommendationWithProcessors")); class EC2CurrentComputeOptimizerRecommendation extends ComputeOptimizerRecommendationWithProcessors_1.default { constructor(computeOptimizerRecommendationData) { super(computeOptimizerRecommendationData); this.accountName = this.accountId; this.instanceName = computeOptimizerRecommendationData.instanceName; this.region = this.getRegion(computeOptimizerRecommendationData.instanceArn); this.type = `EC2-${computeOptimizerRecommendationData.finding}`; this.resourceId = this.getResourceId(computeOptimizerRecommendationData.instanceArn); this.instanceType = computeOptimizerRecommendationData.currentInstanceType; this.description = this.instanceType; this.currentVcpus = computeOptimizerRecommendationData.current_vcpus; this.vCpuHours = this.getVCpuHours(this.currentVcpus, this.instanceType); this.usageAmount = (0, common_1.getHoursInMonth)(); this.recommendationOptions = [ { instanceType: computeOptimizerRecommendationData.recommendationOptions_1_instanceType, costSavings: computeOptimizerRecommendationData.recommendationOptions_1_estimatedMonthlySavings_value, performanceRisk: computeOptimizerRecommendationData.recommendationOptions_1_performanceRisk, vcpus: computeOptimizerRecommendationData.recommendationOptions_1_vcpus, }, { instanceType: computeOptimizerRecommendationData.recommendationOptions_2_instanceType, costSavings: computeOptimizerRecommendationData.recommendationOptions_2_estimatedMonthlySavings_value, performanceRisk: computeOptimizerRecommendationData.recommendationOptions_2_performanceRisk, vcpus: computeOptimizerRecommendationData.recommendationOptions_2_vcpus, }, { instanceType: computeOptimizerRecommendationData.recommendationOptions_3_instanceType, costSavings: computeOptimizerRecommendationData.recommendationOptions_3_estimatedMonthlySavings_value, performanceRisk: computeOptimizerRecommendationData.recommendationOptions_3_performanceRisk, vcpus: computeOptimizerRecommendationData.recommendationOptions_3_vcpus, }, ]; } 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 = EC2CurrentComputeOptimizerRecommendation; //# sourceMappingURL=EC2CurrentComputeOptimizerRecommendation.js.map