Skip to content

Update PUE + GEF #141

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void init() {
this.microarchitecture = InstanceConfiguration.getMicroarchitecture();
this.gridEmissionsFactor = initializeGridEmissionFactor(InstanceConfiguration.getCloudProviderRegion());
cloudInstanceDetails = initializeCloudInstanceDetails(InstanceConfiguration.getCloudProviderInstanceType());
this.pueValue = initializePueValue();
this.pueValue = initializePueValue(InstanceConfiguration.getCloudProviderRegion());
}

public Double getGridEmissionsFactor() {
Expand Down Expand Up @@ -271,14 +271,17 @@ public Double getTotalEmbodiedEmissionsForInstanceType(final String instanceType
return 0.0;
}

private Double initializePueValue() {
private Double initializePueValue(final String region) {
double returnValue = 0.0;
if (Constants.RETIT_EMISSIONS_CLOUD_PROVIDER_CONFIGURATION_PROPERTY_VALUE_AWS.equalsIgnoreCase(InstanceConfiguration.getCloudProvider())) {
returnValue = CloudCarbonFootprintCoefficients.AWS_PUE;
double pue = getDoubleValueFromCSVForRegionOrInstance("/pue/pue-aws.csv", 1, region, 3);
returnValue = (pue == 0.0) ? CloudCarbonFootprintCoefficients.AWS_PUE : pue;
} else if (Constants.RETIT_EMISSIONS_CLOUD_PROVIDER_CONFIGURATION_PROPERTY_VALUE_AZURE.equalsIgnoreCase(InstanceConfiguration.getCloudProvider())) {
returnValue = CloudCarbonFootprintCoefficients.AZURE_PUE;
double pue = getDoubleValueFromCSVForRegionOrInstance("/pue/pue-azure.csv", 3, region, 1);
returnValue = (pue == 0.0) ? CloudCarbonFootprintCoefficients.AZURE_PUE : pue;
} else if (Constants.RETIT_EMISSIONS_CLOUD_PROVIDER_CONFIGURATION_PROPERTY_VALUE_GCP.equalsIgnoreCase(InstanceConfiguration.getCloudProvider())) {
returnValue = CloudCarbonFootprintCoefficients.GCP_PUE;
double pue = getDoubleValueFromCSVForRegionOrInstance("/pue/pue-gcp.csv", 3, region, 1);
returnValue = (pue == 0.0) ? CloudCarbonFootprintCoefficients.GCP_PUE : pue;
}
return returnValue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ us-west-1,United States,WECC,0.000350861,EPA
us-west-2,United States,WECC,0.000350861,EPA
us-gov-east-1,United States,SERC,0.000415755,EPA
us-gov-west-1,United States,WECC,0.000350861,EPA
af-south-1,South Africa,,0.000928,carbonfootprint.com
ap-east-1,Hong Kong,,0.00081,carbonfootprint.com
ap-south-1,India,,0.000708,carbonfootprint.com
ap-northeast-3,Japan,,0.000506,carbonfootprint.com
ap-northeast-2,South Korea,,0.0005,carbonfootprint.com
ap-southeast-1,Singapore,,0.0004085,EMA Singapore
ap-southeast-2,Australia,,0.00079,carbonfootprint.com
ap-northeast-1,Japan,,0.000506,carbonfootprint.com
ca-central-1,Canada,,0.00013,carbonfootprint.com
cn-north-1,China,,0.000555,carbonfootprint.com
cn-northwest-1,China,,0.000555,carbonfootprint.com
eu-central-1,Germany,,0.000338,EEA
eu-west-1,Ireland,,0.000316,EEA
eu-west-2,England,,0.000228,EEA
eu-south-1,Italy,,0.000233,EEA
eu-west-3,France,,0.000052,EEA
eu-north-1,Sweden,,0.000008,EEA
me-south-1,Bahrain,,0.000732,carbonfootprint.com
sa-east-1,Brazil,,0.000074,carbonfootprint.com
af-south-1,South Africa,,0.00077347,carbondi.com
ap-east-1,Hong Kong,,0.00069294,carbondi.com
ap-south-1,India,,0.00093355,carbondi.com
ap-northeast-3,Japan,,0.00045773,carbondi.com
ap-northeast-2,South Korea,,0.00048755,carbondi.com
ap-southeast-1,Singapore,,0.00050249,carbondi.com
ap-southeast-2,Australia,,0.00059512,carbondi.com
ap-northeast-1,Japan,,0.00045773,carbondi.com
ca-central-1,Canada,,0.00011600,carbondi.com
cn-north-1,China,,0.00066080,carbondi.com
cn-northwest-1,China,,0.00066080,carbondi.com
eu-central-1,Germany,,0.00037995,carbondi.com
eu-west-1,Ireland,,0.00031413,carbondi.com
eu-west-2,England,,0.00020705,carbondi.com
eu-south-1,Italy,,0.00031432,carbondi.com
eu-west-3,France,,0.00007055,carbondi.com
eu-north-1,Sweden,,0.00001518,carbondi.com
me-south-1,Bahrain,,0.00051086,carbondi.com
sa-east-1,Brazil,,0.00007410,carbondi.com
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ West Central US,Wyoming,WECC,0.000350861,EPA
West US,California,WECC,0.000350861,EPA
West US 2,Washington,WECC,0.000350861,EPA
West US 3,Arizona,WECC,0.000350861,EPA
East Asia,Hong Kong,,0.00081,carbonfootprint.com
Southeast Asia,Singapore,,0.0004085,EMA Singapore
North Europe,Ireland,,0.000316,EEA
West Europe,Netherlands,,0.00039,EEA
Central India,Pune,,0.000708,carbonfootprint.com
South India,Chennai,,0.000708,carbonfootprint.com
West India,Mumbai,,0.000708,carbonfootprint.com
UK South,London,,0.000228,EEA
UK West,Cardiff,,0.000228,EEA
France Central,Paris,,0.000067,EEA
Finland Central,Helsinki,,0.00077,EEA,
Germany West Central,Frankfurt,,0.00402,EEA
Belgium Central,Brussels,,0.000154,EEA
Sweden Central,Gavle,,0.000009,EEA
East Asia,Hong Kong,,0.00069294,carbondi.com
Southeast Asia,Singapore,,0.00050249,carbondi.com
North Europe,Ireland,,0.00031413,carbondi.com
West Europe,Netherlands,,0.00030901,carbondi.com
Central India,Pune,,0.00093355,carbondi.com
South India,Chennai,,0.00093355,carbondi.com
West India,Mumbai,,0.00093355,carbondi.com
UK South,London,,0.00020705,carbondi.com
UK West,Cardiff,,0.00020705,carbondi.com
France Central,Paris,,0.00007055,carbondi.com
Finland Central,Helsinki,,0.00009501,carbondi.com,
Germany West Central,Frankfurt,,0.00037995,carbondi.com
Belgium Central,Brussels,,0.00012525,carbondi.com
Sweden Central,Gavle,,0.00001518,carbondi.com
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ us-west1,Oregon,0.000117,Google
us-west2,Los Angeles,0.000248,Google
us-west3,Salt Lake City,0.000561,Google
us-west4,Las Vegas,0.000491,Google
asia-east1,Taiwan,0.000541,Google
asia-east2,Hong Kong,0.000626,Google
asia-northeast1,Japan,0.000524,Google
asia-northeast2,Japan,0.000524,Google
asia-northeast3,South Korea,0.00054,Google
asia-south1,India,0.000723,Google
asia-southeast1,Singapore,0.000493,Google
asia-southeast2,Indonesia,0.000772,Google
australia-southeast1,Australia,0.000725,Google
europe-north1,Finland,0.000181,Google
europe-west1,Belgium,0.000196,Google
europe-west2,England,0.000257,Google
europe-west3,Germany,0.000319,Google
europe-west4,Netherlands,0.000474,Google
europe-west6,Switzerland,0.000029,Google
northamerica-northeast1,Canada,0.000143,Google
southamerica-east1,Brazil,0.000109,Google
asia-east1,Taiwan,0.00063602,carbondi.com
asia-east2,Hong Kong,0.00069294,carbondi.com
asia-northeast1,Japan,0.00045773,carbondi.com
asia-northeast2,Japan,0.00045773,carbondi.com
asia-northeast3,South Korea,0.00048755,carbondi.com
asia-south1,India,0.00093355,carbondi.com
asia-southeast1,Singapore,0.00050249,carbondi.com
asia-southeast2,Indonesia,0.00070711,carbondi.com
australia-southeast1,Australia,0.00059512,carbondi.com
europe-north1,Finland,0.00009501,carbondi.com
europe-west1,Belgium,0.00012525,carbondi.com
europe-west2,England,0.00020705,carbondi.com
europe-west3,Germany,0.00037995,carbondi.com
europe-west4,Netherlands,0.00030901,carbondi.com
europe-west6,Switzerland,0.00002369,carbondi.com
northamerica-northeast1,Canada,0.00011600,carbondi.com
southamerica-east1,Brazil,0.00007410,carbondi.com
26 changes: 26 additions & 0 deletions extension/src/main/resources/pue/pue-aws.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Geography,Region,Year,PUE
GLOBAL,GLOBAL,2023,1.15
AMER,AMER,2023,1.14
EMEA,EMEA,2023,1.12
APAC,APAC,2023,1.28
Europe (Stockholm),eu-north-1,2023,1.12
Middle East (Bahrain),me-south-1,2023,1.32
Asia-Pacific (Mumbai),ap-south-1,2023,1.44
Asia-Pacific (Jakarta),ap-southeast-3,2023,1.35
U.S. East (Ohio),us-east-2,2023,1.12
Africa (Cape Town),af-south-1,2023,1.24
Europe (Ireland),eu-west-1,2023,1.1
Middle East (UAE),me-central-1,2023,1.36
Europe (Frankfurt),eu-central-1,2023,1.33
South America (Sao Paulo),sa-east-1,2023,1.18
Asia-Pacific (Hyderabad),ap-south-2,2023,1.5
U.S. East (Northern Virginia),us-east-1,2023,1.15
Asia-Pacific (Melbourne),ap-southeast-4,2023,1.08
Asia-Pacific (Tokyo),ap-northeast-1,2023,1.32
U.S. West (Oregon),us-west-2,2023,1.13
U.S. West (Northern California),us-west-1,2023,1.17
Asia-Pacific (Singapore),ap-southeast-1,2023,1.3
Asia-Pacific (Sydney),ap-southeast-2,2023,1.15
Canada (Central),ca-central-1,2023,1.22
Europe (Spain),eu-south-2,2023,1.11
China (Ningxia),cn-northwest-1,2023,1.26
13 changes: 13 additions & 0 deletions extension/src/main/resources/pue/pue-azure.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"Geography","PUE","WUE (L/kWh)","Region"
"Arizona",1.13,1.52,"West US 3"
"Illinois",1.25,0.52,"North Central US"
"Iowa",1.16,0.10,"Central US"
"Texas",1.28,0.24,"South Central US"
"Virginia",1.14,0.18,"East US"
"Washington",1.16,0.70,"West US 2"
"Wyoming",1.12,0.16,"West Central US"
"Singapore",1.30,0.02,"Southeast Asia"
"Ireland",1.18,0.02,"North Europe"
"Netherlands",1.14,0.04,"West Europe"
"Sweden",1.16,0.05,"Sweden Central"
"Poland",1.19,0.44,"Poland Central"
29 changes: 29 additions & 0 deletions extension/src/main/resources/pue/pue-gcp.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"Campuses","Quarterly","TrailingTwelveMonth","Region"
"Douglas County, Georgia",1.12,1.09,us-east1
"Lenoir, North Carolina",1.24,1.13,us-east1
"Berkeley County, South Carolina",1.13,1.10,us-east1
"Montgomery County, Tennessee",1.13,1.10,us-east1
"Jackson County, Alabama",1.13,1.10,us-east1
"Loudoun County, Virginia",1.11,1.09,us-east4
"Loudoun County, Virginia (2nd facility)",1.09,1.08,us-east4
"Central Ohio (Columbus), Ohio",1.05,0.0,us-east5
"Central Ohio (New Albany), Ohio",1.07,1.08,us-east5
"Central Ohio (Lancaster), Ohio",1.04,0.0,us-east5
"Council Bluffs, Iowa",1.13,1.11,us-central1
"Council Bluffs, Iowa (2nd facility)",1.08,1.07,us-central1
"Papillion, Nebraska",1.10,1.09,us-central1
"Mayes County, Oklahoma",1.14,1.11,us-south1
"Midlothian, Texas",1.13,1.11,us-south1
"The Dalles, Oregon",1.11,1.10,us-west1
"The Dalles, Oregon (2nd facility)",1.08,1.07,us-west1
"Henderson, Nevada",1.11,1.09,us-west4
"Storey County, Nevada",1.22,1.17,us-west4
"Dublin, Ireland",1.07,1.08,N/A
"St. Ghislain, Belgium",1.08,1.08,europe-west1
"Eemshaven, Netherlands",1.08,1.08,europe-west4
"Fredericia, Denmark",1.07,1.08,N/A
"Hamina, Finland",1.10,1.10,europe-north1
"Changua County, Taiwan",1.15,1.12,asia-east1
"Singapore",1.13,1.13,asia-southeast1
"Singapore (2nd facility)",1.15,1.16,asia-southeast1
"Quilicura, Chile",1.09,1.10,southamerica-west1
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public void testCloudCarbonFootprintDataAWS() {
CloudCarbonFootprintData instance = CloudCarbonFootprintData.getConfigInstance();
instance.init();
Assertions.assertNotNull(instance);
Assertions.assertEquals(0.338, instance.getGridEmissionsFactor());
Assertions.assertEquals(0.37995, instance.getGridEmissionsFactor());
CloudCarbonFootprintInstanceData cloudCarbonFootprintInstanceData = instance.getCloudInstanceDetails();
Assertions.assertNotNull(cloudCarbonFootprintInstanceData);

Expand All @@ -59,7 +59,7 @@ public void testCloudCarbonFootprintDataGCP() {
CloudCarbonFootprintData instance = CloudCarbonFootprintData.getConfigInstance();
instance.init();
Assertions.assertNotNull(instance);
Assertions.assertEquals(0.319, instance.getGridEmissionsFactor());
Assertions.assertEquals(0.37995, instance.getGridEmissionsFactor());
CloudCarbonFootprintInstanceData cloudCarbonFootprintInstanceData = instance.getCloudInstanceDetails();
Assertions.assertNotNull(cloudCarbonFootprintInstanceData);
Assertions.assertEquals(4, cloudCarbonFootprintInstanceData.getInstanceVCpuCount());
Expand All @@ -79,7 +79,7 @@ public void testCloudCarbonFootprintDataGCPWithMicroarchitecture() {
CloudCarbonFootprintData instance = CloudCarbonFootprintData.getConfigInstance();
instance.init();
Assertions.assertNotNull(instance);
Assertions.assertEquals(0.319, instance.getGridEmissionsFactor());
Assertions.assertEquals(0.37995, instance.getGridEmissionsFactor());
CloudCarbonFootprintInstanceData cloudCarbonFootprintInstanceData = instance.getCloudInstanceDetails();
Assertions.assertNotNull(cloudCarbonFootprintInstanceData);
Assertions.assertEquals(4, cloudCarbonFootprintInstanceData.getInstanceVCpuCount());
Expand All @@ -98,7 +98,7 @@ public void testCloudCarbonFootprintDataAzure() {
CloudCarbonFootprintData instance = CloudCarbonFootprintData.getConfigInstance();
instance.init();
Assertions.assertNotNull(instance);
Assertions.assertEquals(0.39, instance.getGridEmissionsFactor());
Assertions.assertEquals(0.30901, instance.getGridEmissionsFactor());
CloudCarbonFootprintInstanceData cloudCarbonFootprintInstanceData = instance.getCloudInstanceDetails();
Assertions.assertNotNull(cloudCarbonFootprintInstanceData);
Assertions.assertEquals(1, cloudCarbonFootprintInstanceData.getInstanceVCpuCount());
Expand All @@ -118,7 +118,7 @@ public void testCloudCarbonFootprintDataAzureWithMicroarchitecture() {
CloudCarbonFootprintData instance = CloudCarbonFootprintData.getConfigInstance();
instance.init();
Assertions.assertNotNull(instance);
Assertions.assertEquals(0.39, instance.getGridEmissionsFactor());
Assertions.assertEquals(0.30901, instance.getGridEmissionsFactor());
CloudCarbonFootprintInstanceData cloudCarbonFootprintInstanceData = instance.getCloudInstanceDetails();
Assertions.assertNotNull(cloudCarbonFootprintInstanceData);
Assertions.assertEquals(0.8, cloudCarbonFootprintInstanceData.getInstanceVCpuCount());
Expand Down