Status Dashboard¶
The Status Dashboard at status.greenpeace.us is the operations view for GPUS IT infrastructure — server health, services, backups, cloud costs, and environmental impact. It is served by the gpus-status-site Cloud Run service and is backed by the gpus-status-backend Flask API, which collects metrics over SSH and aggregates data from Google Cloud Storage.
Carbon Footprint Tab¶
The Carbon Footprint tab reports the greenhouse-gas emissions attributable to Greenpeace USA's cloud infrastructure, sourced from the Google Cloud Carbon Footprint service.
Data Source¶
- Origin: GCP Carbon Footprint — Google's official emissions accounting for Cloud resources (project
gpus-infra). - Storage: Exported as JSON to
gs://gpus-infra-backups-wdc/carbon/latest.json. - API endpoint:
GET /api/carbonon the status backend returns the JSON as-is. The handler (get_carbon_data()instatus-backend/app.py) reads the GCS object using the standardgoogle-cloud-storageclient — the same pattern used for OpenVAS findings and portal backup metadata. - Methodology: Market-based Scope 2 emissions (accounts for Google's renewable energy purchases). Units are metric tonnes of CO₂-equivalent (tCO₂e).
What the Tab Shows¶
| Section | Description |
|---|---|
| KPI strip | Yearly total, latest month (with month-over-month change), Scope 2 (market), Scope 3, top-emitting region. |
| Monthly trend | Line chart of tco2e per month over the reporting window (Greenpeace green #00be51). |
| Scope breakdown | Three cards for Scope 1 (direct), Scope 2 (purchased electricity), and Scope 3 (value-chain indirect), each with the tCO₂e value and a plain-language explanation. |
| Region breakdown | Horizontal bar chart of emissions per GCP region (us-central1, asia-southeast1, asia-south2). |
| Contextual comparisons | Equivalence cards — miles driven, smartphone charges, trees needed to offset per year, and USD cost to offset via carbon credits. |
Also Included in PDF Reports¶
The same GCS JSON feeds a Carbon Footprint section in the Executive Monthly and Board Quarterly PDF reports generated by /opt/gpus-reports/report_generator.py on MAPLE. See the SOC Dashboard — Reporting Tab documentation for the section layout and the email attachment filename convention. Updating the GCS JSON updates both the dashboard tab and future report runs — no redeploy or separate edit required.
Update Frequency¶
GCP publishes Carbon Footprint data monthly, typically by the 15th of the following month. The GCS JSON should be refreshed on the same cadence.
How to Update the Data¶
- Open the GCP Carbon Footprint console for project
gpus-infra. - Review the latest monthly report — note yearly total, scope breakdown (1/2-market/3), per-region totals, and add the newest month to the monthly series.
- Edit
/tmp/carbon-latest.jsonlocally, matching the existing schema:updated(ISO date),period,yearly_total_tco2escope1_tco2e,scope2_market_tco2e,scope3_tco2emonthly[]—{month: "YYYY-MM", tco2e}entries (append new month)by_region[]—{region, tco2e}entriescomparisons—driving_miles,smartphone_charges,trees_absorb_yearly,cost_to_offset_usdscopes_explained— plain-language strings for the scope cards
-
Upload to GCS:
-
Verify by hitting the backend:
No redeploy is required — the backend reads the JSON on each request.
Schema Reference¶
{
"updated": "2026-04-15",
"period": "Dec 2024 - Mar 2026",
"yearly_total_tco2e": 0.018,
"scope1_tco2e": 0.001,
"scope2_market_tco2e": 0.006,
"scope3_tco2e": 0.012,
"monthly": [{"month": "2026-03", "tco2e": 0.008}],
"by_region": [{"region": "us-central1", "tco2e": 0.014}],
"comparisons": {
"driving_miles": 45,
"smartphone_charges": 2200,
"trees_absorb_yearly": 0.001,
"cost_to_offset_usd": 0.27
},
"scopes_explained": {
"scope1": "…",
"scope2": "…",
"scope3": "…"
}
}