@cloud-carbon-footprint/core
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions.
53 lines (52 loc) • 1.84 kB
TypeScript
import { KilowattHoursByServiceAndUsageUnit } from './FootprintEstimate';
import { EstimateUnknownUsageBy } from './unknown';
export default interface CloudConstants {
readonly minWatts?: number;
readonly maxWatts?: number;
readonly powerUsageEffectiveness?: number;
readonly avgCpuUtilization?: number;
readonly replicationFactor?: number;
readonly kilowattHoursByServiceAndUsageUnit?: KilowattHoursByServiceAndUsageUnit;
readonly averageWatts?: number;
}
export declare type CloudConstantsByProvider = {
SSDCOEFFICIENT?: number;
HDDCOEFFICIENT?: number;
MEMORY_AVG?: number;
MEMORY_BY_COMPUTE_PROCESSOR?: {
[key: string]: number;
};
getMemory?: (computeProcessors?: string[]) => number;
MIN_WATTS_AVG?: number;
MIN_WATTS_MEDIAN?: number;
MIN_WATTS_BY_COMPUTE_PROCESSOR: {
[key: string]: number;
};
getMinWatts: (computeProcessors?: string[]) => number;
MAX_WATTS_AVG?: number;
MAX_WATTS_MEDIAN?: number;
MAX_WATTS_BY_COMPUTE_PROCESSOR: {
[key: string]: number;
};
getMaxWatts: (computeProcessors?: string[]) => number;
PUE_AVG: number;
NETWORKING_COEFFICIENT?: number;
MEMORY_COEFFICIENT?: number;
PUE_TRAILING_TWELVE_MONTH?: {
[key: string]: number;
};
getPUE: (region?: string) => number;
AVG_CPU_UTILIZATION_2020: number;
REPLICATION_FACTORS?: {
[key: string]: number;
};
KILOWATT_HOURS_BY_SERVICE_AND_USAGE_UNIT?: KilowattHoursByServiceAndUsageUnit;
ESTIMATE_UNKNOWN_USAGE_BY?: EstimateUnknownUsageBy;
SERVER_EXPECTED_LIFESPAN?: number;
};
export declare type CloudConstantsEmissionsFactors = {
[region: string]: number;
};
export declare type ReplicationFactorsForService = {
[key: string]: (usageType?: string, region?: string) => number;
};