UNPKG

@cloud-carbon-footprint/aws

Version:

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

276 lines (267 loc) 11.1 kB
/* * © 2021 Thoughtworks, Inc. */ import { ListObjectsV2Output } from 'aws-sdk/clients/s3' export const mockEC2ComputeOptimizerBucketList: ListObjectsV2Output = { Contents: [ { Key: 'recommendations/asg/compute-optimizer/12345678/ap-northeast-2-2022-01-21T050030Z-e123a06b-4ae2-0e51-a27f-bff1ecb5173f.csv', LastModified: new Date('01-20-2022'), ETag: '123456jdfjndk7465gfffanisbdj12', Size: 4130, StorageClass: 'STANDARD', }, { Key: 'recommendations/ec2/compute-optimizer/12345678/sa-east-1-2022-01-21T050030Z-e123a06b-4ae2-0e51-a27f-bff1ecb5173f.csv', LastModified: new Date('01-20-2022'), ETag: '365534jdfjndk7465ghhhanisbdj12', Size: 4130, StorageClass: 'STANDARD', }, ], Name: 'test-bucket', } export const mockEBSComputeOptimizerBucketList: ListObjectsV2Output = { Contents: [ { Key: 'recommendations/ebs/compute-optimizer/12345678/us-east-2-2022-01-21T050030Z-e123a06b-4ae2-0e51-a27f-bff1ecb5173f.csv', LastModified: new Date('01-20-2022'), ETag: '123456jdfjndk7465gfffanisbdj12', Size: 4130, StorageClass: 'STANDARD', }, ], Name: 'test-bucket', } export const mockLambdaComputeOptimizerBucketList: ListObjectsV2Output = { Contents: [ { Key: 'recommendations/lambda/compute-optimizer/12345678/us-east-2-2022-01-21T050030Z-e123a06b-4ae2-0e51-a27f-bff1ecb5173f.csv', LastModified: new Date('01-20-2022'), ETag: '123456jdfjndk7465gfffanisbdj12', Size: 4130, StorageClass: 'STANDARD', }, ], Name: 'test-bucket', } export const ec2ComputeOptimizer = [ { accountId: '1234567890', instanceArn: 'arn:aws:ec2:eu-central-1:1234567890:instance/i-0c80d1b0f3a0c5c69', instanceName: 'PA-VM-100 | Networks', currentInstanceType: 'm4.xlarge', finding: 'OVER_PROVISIONED', current_vcpus: '4', recommendations_count: '3', recommendationOptions_1_instanceType: 't3.xlarge', recommendationOptions_2_instanceType: 'm5.xlarge', recommendationOptions_3_instanceType: 'r5n.large', recommendationOptions_1_estimatedMonthlySavings_value: '33.79', recommendationOptions_2_estimatedMonthlySavings_value: '7.04', recommendationOptions_3_estimatedMonthlySavings_value: '5.04', recommendationOptions_1_performanceRisk: '3.0', recommendationOptions_2_performanceRisk: '1.0', recommendationOptions_3_performanceRisk: '1.0', recommendationOptions_1_vcpus: '2', recommendationOptions_2_vcpus: '2', recommendationOptions_3_vcpus: '2', }, { accountId: '1234567890', instanceArn: 'arn:aws:ec2:eu-central-1:1234567890:instance/i-0c80d1b0f3a0c5c69', instanceName: 'PA-VM-100 | Networks', currentInstanceType: 'm4.xlarge', finding: 'OVER_PROVISIONED', current_vcpus: '4', recommendations_count: '3', recommendationOptions_1_instanceType: 't3.xlarge', recommendationOptions_2_instanceType: 'm5.xlarge', recommendationOptions_3_instanceType: 'r5n.large', recommendationOptions_1_estimatedMonthlySavings_value: '0', recommendationOptions_2_estimatedMonthlySavings_value: '7.04', recommendationOptions_3_estimatedMonthlySavings_value: '5.04', recommendationOptions_1_performanceRisk: '3.0', recommendationOptions_2_performanceRisk: '1.0', recommendationOptions_3_performanceRisk: '1.0', recommendationOptions_1_vcpus: '2', recommendationOptions_2_vcpus: '2', recommendationOptions_3_vcpus: '2', }, { accountId: '1234567890', instanceArn: 'arn:aws:ec2:eu-central-1:1234567890:instance/i-0c80d1b0f3a0c5c69', instanceName: 'PA-VM-100 | Networks', currentInstanceType: 'm4.xlarge', finding: 'UNDER_PROVISIONED', current_vcpus: '2', recommendations_count: '3', recommendationOptions_1_instanceType: 't3.xlarge', recommendationOptions_2_instanceType: 'm5.xlarge', recommendationOptions_3_instanceType: 'r5n.large', recommendationOptions_1_estimatedMonthlySavings_value: '13.79', recommendationOptions_2_estimatedMonthlySavings_value: '2.01', recommendationOptions_3_estimatedMonthlySavings_value: '5.01', recommendationOptions_1_performanceRisk: '1.0', recommendationOptions_2_performanceRisk: '1.0', recommendationOptions_3_performanceRisk: '3.0', recommendationOptions_1_vcpus: '2', recommendationOptions_2_vcpus: '2', recommendationOptions_3_vcpus: '2', }, { accountId: '1234567890', instanceArn: 'arn:aws:ec2:eu-central-1:1234567890:instance/i-0c80d1b0f3a0c5c69', instanceName: 'PA-VM-100 | Networks', currentInstanceType: 'm4.xlarge', finding: 'OPTIMIZED', current_vcpus: '3', recommendations_count: '3', recommendationOptions_1_instanceType: 't3.xlarge', recommendationOptions_2_instanceType: 'm5.xlarge', recommendationOptions_3_instanceType: 'r5n.large', recommendationOptions_1_estimatedMonthlySavings_value: '88.79', recommendationOptions_2_estimatedMonthlySavings_value: '17.34', recommendationOptions_3_estimatedMonthlySavings_value: '5.01', recommendationOptions_1_performanceRisk: '1.0', recommendationOptions_2_performanceRisk: '1.0', recommendationOptions_3_performanceRisk: '3.0', recommendationOptions_1_vcpus: '2', recommendationOptions_2_vcpus: '2', recommendationOptions_3_vcpus: '2', }, ] export const asgComputeOptimizer = [ { accountId: '1234567890', autoScalingGroupArn: 'arn:aws:autoscaling:ap-south-1:1234567890:autoScalingGroup:6b23335d-1234-46ea-8365-aad08e461d27:autoScalingGroupName/eksctl-emr-on-eks-ebs-encryption-spike-nodegroup-ng-2-workers-NodeGroup-8T4T8GM1AO', currentConfiguration_instanceType: 'm4.xlarge', finding: 'NOT_OPTIMIZED', current_vcpus: '4', recommendations_count: '3', recommendationOptions_1_configuration_instanceType: 'r5.large', recommendationOptions_2_configuration_instanceType: 'r5n.large', recommendationOptions_1_estimatedMonthlySavings_value: '51.47', recommendationOptions_2_estimatedMonthlySavings_value: '35.03', }, ] export const ebsComputeOptimizer = [ { accountId: '1234567890', volumeArn: 'arn:aws:ec2:us-west-2:123456789012:volume/vol-00e39f1234a7eadfb', currentConfiguration_instanceType: 'm4.xlarge', finding: 'NotOptimized', current_monthlyPrice: '8.0', currentConfiguration_volumeType: 'gp2', currentConfiguration_volumeSize: '80', recommendations_count: '2', recommendationOptions_1_configuration_volumeType: 'gp3', recommendationOptions_1_configuration_volumeSize: '50', recommendationOptions_2_configuration_volumeType: 'gp2', recommendationOptions_2_configuration_volumeSize: '80', recommendationOptions_3_configuration_volumeType: '', recommendationOptions_3_configuration_volumeSize: '', recommendationOptions_1_estimatedMonthlySavings_value: '6.2', recommendationOptions_2_estimatedMonthlySavings_value: '8', recommendationOptions_3_estimatedMonthlySavings_value: '', recommendationOptions_1_performanceRisk: '1.0', recommendationOptions_2_performanceRisk: '2.0', recommendationOptions_3_performanceRisk: '1.0', }, { accountId: '1234567890', volumeArn: 'arn:aws:ec2:us-west-2:123456789012:volume/vol-00e39f1234a7eaqrt', currentConfiguration_instanceType: 'm4.xlarge', finding: 'NotOptimized', current_monthlyPrice: '8.0', currentConfiguration_volumeType: 'st1', currentConfiguration_volumeSize: '80', recommendations_count: '2', recommendationOptions_1_configuration_volumeType: 'st1', recommendationOptions_1_configuration_volumeSize: '50', recommendationOptions_2_configuration_volumeType: 'sc1', recommendationOptions_2_configuration_volumeSize: '80', recommendationOptions_3_configuration_volumeType: '', recommendationOptions_3_configuration_volumeSize: '', recommendationOptions_1_estimatedMonthlySavings_value: '0', recommendationOptions_2_estimatedMonthlySavings_value: '8', recommendationOptions_3_estimatedMonthlySavings_value: '', recommendationOptions_1_performanceRisk: '1.0', recommendationOptions_2_performanceRisk: '2.0', recommendationOptions_3_performanceRisk: '1.0', }, { accountId: '1234567890', volumeArn: 'arn:aws:ec2:us-west-2:123456789012:volume/vol-00e39f1234a7eadfb', currentConfiguration_instanceType: 'm4.xlarge', finding: 'Optimized', current_monthlyPrice: '8.0', currentConfiguration_volumeType: 'gp2', currentConfiguration_volumeSize: '80', recommendations_count: '2', recommendationOptions_1_configuration_volumeType: 'gp3', recommendationOptions_1_configuration_volumeSize: '80', recommendationOptions_2_configuration_volumeType: 'gp2', recommendationOptions_2_configuration_volumeSize: '80', recommendationOptions_1_estimatedMonthlySavings_value: '6.2', recommendationOptions_2_estimatedMonthlySavings_value: '8', recommendationOptions_1_performanceRisk: '3.0', recommendationOptions_2_performanceRisk: '1.0', recommendationOptions_3_performanceRisk: '1.0', }, ] export const lambdaComputeOptimizer = [ { accountId: '1234567890', functionArn: 'arn:aws:lambda:us-east-2:1234567890:function:api-user-prod-add_user:$LATEST', finding: 'NotOptimized', functionVersion: '$LATEST', currentConfiguration_memorySize: '1024', recommendations_count: '1', recommendationOptions_1_configuration_memorySize: '848', recommendationOptions_2_configuration_memorySize: '', recommendationOptions_3_configuration_memorySize: '', recommendationOptions_1_estimatedMonthlySavings_value: '2.988E-04', recommendationOptions_2_estimatedMonthlySavings_value: '', recommendationOptions_3_estimatedMonthlySavings_value: '', }, { accountId: '1234567890', functionArn: 'arn:aws:lambda:us-east-2:1234567890:function:api-user-prod-add_user:$LATEST', finding: 'NotOptimized', functionVersion: '$LATEST', currentConfiguration_memorySize: '1024', recommendations_count: '1', recommendationOptions_1_configuration_memorySize: '848', recommendationOptions_2_configuration_memorySize: '', recommendationOptions_3_configuration_memorySize: '', recommendationOptions_1_estimatedMonthlySavings_value: '', recommendationOptions_2_estimatedMonthlySavings_value: '', recommendationOptions_3_estimatedMonthlySavings_value: '', }, { accountId: '1234567890', functionArn: 'arn:aws:lambda:us-east-2:1234567890:function:sumo-webhook-prod:$LATEST', finding: 'Optimized', functionVersion: '$LATEST', currentConfiguration_memorySize: '1024', recommendations_count: '0', recommendationOptions_1_configuration_memorySize: '', recommendationOptions_2_configuration_memorySize: '', recommendationOptions_3_configuration_memorySize: '', recommendationOptions_1_estimatedMonthlySavings_value: '', recommendationOptions_2_estimatedMonthlySavings_value: '', recommendationOptions_3_estimatedMonthlySavings_value: '', }, ]