Skip to content

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/carbon on the status backend returns the JSON as-is. The handler (get_carbon_data() in status-backend/app.py) reads the GCS object using the standard google-cloud-storage client — 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

  1. Open the GCP Carbon Footprint console for project gpus-infra.
  2. 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.
  3. Edit /tmp/carbon-latest.json locally, matching the existing schema:
    • updated (ISO date), period, yearly_total_tco2e
    • scope1_tco2e, scope2_market_tco2e, scope3_tco2e
    • monthly[]{month: "YYYY-MM", tco2e} entries (append new month)
    • by_region[]{region, tco2e} entries
    • comparisonsdriving_miles, smartphone_charges, trees_absorb_yearly, cost_to_offset_usd
    • scopes_explained — plain-language strings for the scope cards
  4. Upload to GCS:

    gsutil cp /tmp/carbon-latest.json gs://gpus-infra-backups-wdc/carbon/latest.json
    
  5. Verify by hitting the backend:

    curl -s https://status.greenpeace.us/api/carbon | jq .updated
    

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": "…"
  }
}