UNPKG

@cloud-carbon-footprint/gcp

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions from Google Cloud Platform.

457 lines 16.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.N1_SHARED_CORE_MACHINE_FAMILY_TO_MACHINE_TYPE_MAPPING = exports.MACHINE_FAMILY_SHARED_CORE_TO_MACHINE_TYPE_MAPPING = exports.MACHINE_FAMILY_TO_MACHINE_TYPE_MAPPING = exports.GCP_ACCELERATOR_TYPE_TO_GPU_PROCESSOR = exports.GPU_MACHINE_TYPES = exports.INSTANCE_TYPE_COMPUTE_PROCESSOR_MAPPING = exports.SHARED_CORE_PROCESSORS_BASELINE_UTILIZATION = exports.SHARED_CORE_PROCESSORS = void 0; const core_1 = require("@cloud-carbon-footprint/core"); var SHARED_CORE_PROCESSORS; (function (SHARED_CORE_PROCESSORS) { SHARED_CORE_PROCESSORS["E2_MICRO"] = "e2-micro"; SHARED_CORE_PROCESSORS["E2_SMALL"] = "e2-small"; SHARED_CORE_PROCESSORS["E2_MEDIUM"] = "e2-medium"; SHARED_CORE_PROCESSORS["F1_MICRO"] = "f1-micro"; SHARED_CORE_PROCESSORS["G1_SMALL"] = "g1-small"; })(SHARED_CORE_PROCESSORS || (exports.SHARED_CORE_PROCESSORS = SHARED_CORE_PROCESSORS = {})); exports.SHARED_CORE_PROCESSORS_BASELINE_UTILIZATION = { [SHARED_CORE_PROCESSORS.E2_MICRO]: 25, [SHARED_CORE_PROCESSORS.E2_SMALL]: 50, [SHARED_CORE_PROCESSORS.E2_MEDIUM]: 100, [SHARED_CORE_PROCESSORS.F1_MICRO]: 20, [SHARED_CORE_PROCESSORS.G1_SMALL]: 50, }; exports.INSTANCE_TYPE_COMPUTE_PROCESSOR_MAPPING = { e2: core_1.skyLakeBroadwellHaswellAMDRome, n2: [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE], n2d: [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_2ND_GEN], t2d: [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN], n1: core_1.skyLakeBroadwellHaswellSandyBridgeIvyBridge, c2: [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE], c2d: [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN], a3: [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS], g2: [core_1.COMPUTE_PROCESSOR_TYPES.CASCADE_LAKE], c3: [core_1.COMPUTE_PROCESSOR_TYPES.SAPPHIRE_RAPIDS], c4: [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS], c4a: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], n4: [core_1.COMPUTE_PROCESSOR_TYPES.EMERALD_RAPIDS], m3: [core_1.COMPUTE_PROCESSOR_TYPES.ICELAKE], h3: [core_1.COMPUTE_PROCESSOR_TYPES.SAPPHIRE_RAPIDS], t2a: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], t2: [core_1.COMPUTE_PROCESSOR_TYPES.AMD_EPYC_3RD_GEN], [SHARED_CORE_PROCESSORS.E2_MICRO]: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], [SHARED_CORE_PROCESSORS.E2_SMALL]: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], [SHARED_CORE_PROCESSORS.E2_MEDIUM]: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], [SHARED_CORE_PROCESSORS.F1_MICRO]: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], [SHARED_CORE_PROCESSORS.G1_SMALL]: [core_1.COMPUTE_PROCESSOR_TYPES.UNKNOWN], }; exports.GPU_MACHINE_TYPES = [ core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_GB300, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_GB200, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B200, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H200, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H100, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_A100, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_RTX_PRO_6000, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L4, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_V100, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_P100, core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_P4, ]; exports.GCP_ACCELERATOR_TYPE_TO_GPU_PROCESSOR = { 'nvidia-gb300': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_GB300, 'nvidia-gb200': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_GB200, 'nvidia-b200': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_B200, 'nvidia-h200-141gb': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H200, 'nvidia-h100-80gb': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_H100, 'nvidia-a100-80gb': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_A100, 'nvidia-tesla-a100': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_A100, 'nvidia-rtx-pro-6000': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_RTX_PRO_6000, 'nvidia-l4': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_L4, 'nvidia-tesla-t4': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_T4, 'nvidia-tesla-v100': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_V100, 'nvidia-tesla-p100': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_P100, 'nvidia-tesla-p4': core_1.COMPUTE_PROCESSOR_TYPES.NVIDIA_TESLA_P4, }; exports.MACHINE_FAMILY_TO_MACHINE_TYPE_MAPPING = { 'h3-standard': { 'h3-standard-88': [88, 56], }, 'c4-standard': { 'c4-standard-2': [2, 230], 'c4-standard-4': [4, 230], 'c4-standard-8': [8, 230], 'c4-standard-16': [16, 230], 'c4-standard-24': [24, 230], 'c4-standard-32': [32, 230], 'c4-standard-48': [48, 230], 'c4-standard-96': [96, 230], 'c4-standard-144': [144, 230], 'c4-standard-192': [192, 230], 'c4-standard-288': [288, 230], }, 'c4-highcpu': { 'c4-highcpu-2': [2, 66], 'c4-highcpu-4': [4, 66], 'c4-highcpu-8': [8, 66], 'c4-highcpu-16': [16, 66], 'c4-highcpu-24': [24, 66], 'c4-highcpu-32': [32, 66], 'c4-highcpu-48': [48, 66], 'c4-highcpu-96': [96, 66], 'c4-highcpu-144': [144, 66], 'c4-highcpu-192': [192, 66], 'c4-highcpu-288': [288, 66], }, 'c4-highmem': { 'c4-highmem-2': [2, 1000], 'c4-highmem-4': [4, 1000], 'c4-highmem-8': [8, 1000], 'c4-highmem-16': [16, 1000], 'c4-highmem-24': [24, 1000], 'c4-highmem-32': [32, 1000], 'c4-highmem-48': [48, 1000], 'c4-highmem-96': [96, 1000], 'c4-highmem-144': [144, 1000], 'c4-highmem-192': [192, 1000], 'c4-highmem-288': [288, 1000], }, 'c4a-standard': { 'c4a-standard-1': [1, 37], 'c4a-standard-2': [2, 37], 'c4a-standard-4': [4, 37], 'c4a-standard-8': [8, 37], 'c4a-standard-16': [16, 37], 'c4a-standard-32': [32, 37], 'c4a-standard-48': [48, 37], 'c4a-standard-64': [64, 37], 'c4a-standard-72': [72, 37], 'c4a-standard-4-lssd': [4, 38], 'c4a-standard-8-lssd': [8, 38], 'c4a-standard-16-lssd': [16, 38], 'c4a-standard-32-lssd': [32, 38], 'c4a-standard-48-lssd': [48, 38], 'c4a-standard-64-lssd': [64, 38], 'c4a-standard-72-lssd': [72, 38], }, 'c4a-highcpu': { 'c4a-highcpu-1': [1, 10], 'c4a-highcpu-2': [2, 10], 'c4a-highcpu-4': [4, 10], 'c4a-highcpu-8': [8, 10], 'c4a-highcpu-16': [16, 10], 'c4a-highcpu-32': [32, 10], 'c4a-highcpu-48': [48, 10], 'c4a-highcpu-64': [64, 10], 'c4a-highcpu-72': [72, 10], }, 'c4a-highmem': { 'c4a-highmem-1': [1, 150], 'c4a-highmem-2': [2, 150], 'c4a-highmem-4': [4, 150], 'c4a-highmem-8': [8, 150], 'c4a-highmem-16': [16, 150], 'c4a-highmem-32': [32, 150], 'c4a-highmem-48': [48, 150], 'c4a-highmem-64': [64, 150], 'c4a-highmem-72': [72, 150], 'c4a-highmem-4-lssd': [4, 150], 'c4a-highmem-8-lssd': [8, 150], 'c4a-highmem-16-lssd': [16, 150], 'c4a-highmem-32-lssd': [32, 150], 'c4a-highmem-48-lssd': [48, 150], 'c4a-highmem-64-lssd': [64, 150], 'c4a-highmem-72-lssd': [72, 150], }, 'c3-standard': { 'c3-standard-4': [4, 220], 'c3-standard-8': [8, 220], 'c3-standard-22': [22, 220], 'c3-standard-44': [44, 220], 'c3-standard-88': [88, 220], 'c3-standard-176': [176, 220], 'c3-standard-192-metal': [192, 260], 'c3-standard-4-lssd': [4, 220], 'c3-standard-8-lssd': [8, 220], 'c3-standard-22-lssd': [22, 220], 'c3-standard-44-lssd': [44, 220], 'c3-standard-88-lssd': [88, 220], 'c3-standard-176-lssd': [176, 220], }, 'c3-highcpu': { 'c3-highcpu-4': [4, 56], 'c3-highcpu-8': [8, 56], 'c3-highcpu-22': [22, 56], 'c3-highcpu-44': [44, 56], 'c3-highcpu-88': [88, 56], 'c3-highcpu-176': [176, 56], 'c3-highcpu-192-metal': [192, 120], }, 'c3-highmem': { 'c3-highmem-4': [4, 900], 'c3-highmem-8': [8, 900], 'c3-highmem-22': [22, 900], 'c3-highmem-44': [44, 900], 'c3-highmem-88': [88, 900], 'c3-highmem-176': [176, 900], 'c3-highmem-192-metal': [192, 1000], }, 'c3d-standard': { 'c3d-standard-4': [4, 900], 'c3d-standard-8': [8, 900], 'c3d-standard-16': [16, 900], 'c3d-standard-30': [30, 900], 'c3d-standard-60': [60, 900], 'c3d-standard-90': [90, 900], 'c3d-standard-180': [180, 900], 'c3d-standard-360': [360, 900], 'c3d-standard-8-lssd': [8, 900], 'c3d-standard-16-lssd': [16, 900], 'c3d-standard-30-lssd': [30, 900], 'c3d-standard-60-lssd': [60, 900], 'c3d-standard-90-lssd': [90, 900], 'c3d-standard-180-lssd': [180, 900], 'c3d-standard-360-lssd': [360, 900], }, 'c3d-highcpu': { 'c3d-highcpu-4': [4, 220], 'c3d-highcpu-8': [8, 220], 'c3d-highcpu-16': [16, 220], 'c3d-highcpu-30': [30, 220], 'c3d-highcpu-60': [60, 220], 'c3d-highcpu-90': [90, 220], 'c3d-highcpu-180': [180, 220], 'c3d-highcpu-360': [360, 220], }, 'c3d-highmem': { 'c3d-highmem-4': [4, 3700], 'c3d-highmem-8': [8, 3700], 'c3d-highmem-16': [16, 3700], 'c3d-highmem-30': [30, 3700], 'c3d-highmem-60': [60, 3700], 'c3d-highmem-90': [90, 3700], 'c3d-highmem-180': [180, 3700], 'c3d-highmem-360': [360, 3700], 'c3d-highmem-8-lssd': [8, 3700], 'c3d-highmem-16-lssd': [16, 3700], 'c3d-highmem-30-lssd': [30, 3700], 'c3d-highmem-60-lssd': [60, 3700], 'c3d-highmem-90-lssd': [90, 3700], 'c3d-highmem-180-lssd': [180, 3700], 'c3d-highmem-360-lssd': [360, 3700], }, 'c2d-standard': { 'c2d-standard-2': [2, 90], 'c2d-standard-4': [4, 90], 'c2d-standard-8': [8, 90], 'c2d-standard-16': [16, 90], 'c2d-standard-32': [32, 90], 'c2d-standard-56': [56, 90], 'c2d-standard-112': [112, 90], }, 'c2d-highcpu': { 'c2d-highcpu-2': [2, 23], 'c2d-highcpu-4': [4, 23], 'c2d-highcpu-8': [8, 23], 'c2d-highcpu-16': [16, 23], 'c2d-highcpu-32': [32, 23], 'c2d-highcpu-56': [56, 23], 'c2d-highcpu-112': [112, 23], }, 'c2d-highmem': { 'c2d-highmem-2': [2, 360], 'c2d-highmem-4': [4, 360], 'c2d-highmem-8': [8, 360], 'c2d-highmem-16': [16, 360], 'c2d-highmem-32': [32, 360], 'c2d-highmem-56': [56, 360], 'c2d-highmem-112': [112, 360], }, 'c2-standard': { 'c2-standard-4': [4, 26], 'c2-standard-8': [8, 26], 'c2-standard-16': [16, 26], 'c2-standard-30': [30, 26], 'c2-standard-60': [60, 26], }, 'n4-standard': { 'n4-standard-2': [2, 46], 'n4-standard-4': [4, 46], 'n4-standard-8': [8, 46], 'n4-standard-16': [16, 46], 'n4-standard-32': [32, 46], 'n4-standard-48': [48, 46], 'n4-standard-64': [64, 46], 'n4-standard-80': [80, 46], }, 'n4-highcpu': { 'n4-highcpu-2': [2, 12], 'n4-highcpu-4': [4, 12], 'n4-highcpu-8': [8, 12], 'n4-highcpu-16': [16, 12], 'n4-highcpu-32': [32, 12], 'n4-highcpu-48': [48, 12], 'n4-highcpu-64': [64, 12], 'n4-highcpu-80': [80, 12], }, 'n4-highmem': { 'n4-highmem-2': [2, 180], 'n4-highmem-4': [4, 180], 'n4-highmem-8': [8, 180], 'n4-highmem-16': [16, 180], 'n4-highmem-32': [32, 180], 'n4-highmem-48': [48, 180], 'n4-highmem-64': [64, 180], 'n4-highmem-80': [80, 180], }, 'e2-standard': { 'e2-standard-2': [2, 8], 'e2-standard-4': [4, 8], 'e2-standard-8': [8, 8], 'e2-standard-16': [16, 8], 'e2-standard-32': [32, 8], }, 'e2-highmem': { 'e2-highmem-2': [2, 8], 'e2-highmem-4': [4, 8], 'e2-highmem-8': [8, 8], 'e2-highmem-16': [16, 8], }, 'e2-highcpu': { 'e2-highcpu-2': [2, 0.89], 'e2-highcpu-4': [4, 0.89], 'e2-highcpu-8': [8, 0.89], 'e2-highcpu-16': [16, 0.89], 'e2-highcpu-32': [32, 0.89], }, 'n2-standard': { 'n2-standard-2': [2, 120], 'n2-standard-4': [4, 120], 'n2-standard-8': [8, 120], 'n2-standard-16': [16, 120], 'n2-standard-32': [32, 120], 'n2-standard-48': [48, 120], 'n2-standard-64': [64, 120], 'n2-standard-80': [80, 120], 'n2-standard-96': [96, 120], 'n2-standard-128': [128, 120], }, 'n2-highmem': { 'n2-highmem-2': [2, 120], 'n2-highmem-4': [4, 120], 'n2-highmem-8': [8, 120], 'n2-highmem-16': [16, 120], 'n2-highmem-32': [32, 120], 'n2-highmem-48': [48, 120], 'n2-highmem-64': [64, 120], 'n2-highmem-80': [80, 120], 'n2-highmem-96': [96, 120], 'n2-highmem-128': [128, 120], }, 'n2-highcpu': { 'n2-highcpu-2': [2, 330], 'n2-highcpu-4': [4, 330], 'n2-highcpu-8': [8, 330], 'n2-highcpu-16': [16, 330], 'n2-highcpu-32': [32, 330], 'n2-highcpu-48': [48, 330], 'n2-highcpu-64': [64, 330], 'n2-highcpu-80': [80, 330], 'n2-highcpu-96': [96, 330], }, 'n2d-standard': { 'n2d-standard-2': [2, 360], 'n2d-standard-4': [4, 360], 'n2d-standard-8': [8, 360], 'n2d-standard-16': [16, 360], 'n2d-standard-32': [32, 360], 'n2d-standard-48': [48, 360], 'n2d-standard-64': [64, 360], 'n2d-standard-80': [80, 360], 'n2d-standard-96': [96, 360], 'n2d-standard-128': [128, 360], 'n2d-standard-224': [224, 360], }, 'n2d-highmem': { 'n2d-highmem-2': [2, 23], 'n2d-highmem-4': [4, 23], 'n2d-highmem-8': [8, 23], 'n2d-highmem-16': [16, 23], 'n2d-highmem-32': [32, 23], 'n2d-highmem-48': [48, 23], 'n2d-highmem-64': [64, 23], 'n2d-highmem-80': [80, 23], 'n2d-highmem-96': [96, 23], }, 'n2d-highcpu': { 'n2d-highcpu-2': [2, 260], 'n2d-highcpu-4': [4, 260], 'n2d-highcpu-8': [8, 260], 'n2d-highcpu-16': [16, 260], 'n2d-highcpu-32': [32, 260], 'n2d-highcpu-48': [48, 260], 'n2d-highcpu-64': [64, 260], 'n2d-highcpu-80': [80, 260], 'n2d-highcpu-96': [96, 260], 'n2d-highcpu-128': [128, 260], 'n2d-highcpu-224': [224, 260], }, 't2d-standard': { 't2d-standard-1': [1, 26], 't2d-standard-2': [2, 26], 't2d-standard-4': [4, 26], 't2d-standard-8': [8, 26], 't2d-standard-16': [16, 26], 't2d-standard-32': [32, 26], 't2d-standard-48': [48, 26], 't2d-standard-60': [60, 26], }, 't2a-standard': { 't2a-standard-1': [1, 17], 't2a-standard-2': [2, 17], 't2a-standard-4': [4, 17], 't2a-standard-8': [8, 17], 't2a-standard-16': [16, 17], 't2a-standard-32': [32, 17], 't2a-standard-48': [48, 17], }, 'n1-standard': { 'n1-standard-1': [1, 58], 'n1-standard-2': [2, 58], 'n1-standard-4': [4, 58], 'n1-standard-8': [8, 58], 'n1-standard-16': [16, 58], 'n1-standard-32': [32, 58], 'n1-standard-64': [64, 58], 'n1-standard-96': [96, 58], }, 'n1-highmem': { 'n1-highmem-2': [2, 170], 'n1-highmem-4': [4, 170], 'n1-highmem-8': [8, 170], 'n1-highmem-16': [16, 170], 'n1-highmem-32': [32, 170], 'n1-highmem-64': [64, 170], 'n1-highmem-96': [96, 170], }, 'n1-highcpu': { 'n1-highcpu-2': [2, 4.6], 'n1-highcpu-4': [4, 4.6], 'n1-highcpu-8': [8, 4.6], 'n1-highcpu-16': [16, 4.6], 'n1-highcpu-32': [32, 4.6], 'n1-highcpu-64': [64, 4.6], 'n1-highcpu-96': [96, 4.6], }, }; exports.MACHINE_FAMILY_SHARED_CORE_TO_MACHINE_TYPE_MAPPING = { e2: { 'e2-micro': [2, 0.4], 'e2-small': [2, 0.4], 'e2-medium': [2, 0.4], 'e2-standard-32': [32, 8], }, }; exports.N1_SHARED_CORE_MACHINE_FAMILY_TO_MACHINE_TYPE_MAPPING = { 'f1-micro': [1, 0.4], 'g1-small': [1, 0.4], 'n1-standard-96': [96, 58], }; //# sourceMappingURL=MachineTypes.js.map