What's Changed
Added
- Grafana: Streamlined dashboard layout — Dashboard rebuilt to 4 sections and 9 panels: GreenKube Impact Command Center (radar, footprint mix, impact ledger, action priorities), CO₂e by Namespace (pie charts, now promoted to second position above the map), Regional Node Cleanliness (geomap), and Top Emitters & Spenders (top-15 pods by CO₂e and cost). Eight rows and their associated panels removed.
- Recommendations: Annualised savings — Each recommendation now exposes projected annual CO₂e savings (
annual_co2e_savings_grams) and annual cost savings (annual_cost_savings_usd), extrapolated from the observation window. Values are surfaced in the API response, the frontend recommendations page, and CLI output. - Report: Yearly and custom date ranges —
GET /api/v1/reportnow accepts a1y(calendar year-to-date) window and arbitrarystart/endtimestamps. Reports can additionally be grouped by namespace via thegroup_by_namespacequery parameter. - Recommendations: Savings ledger integration (#237) — Applied recommendations now trigger a savings-ledger entry. A new flow updates
RecommendationRealizationrecords and kicks off a background refresh of the savings attribution so thegreenkube_co2e_savings_attributed_grams_totalandgreenkube_cost_savings_attributed_dollars_totalgauges stay consistent as metrics accumulate. - Recommendations:
GET /api/v1/recommendations/top— New API endpoint returning the highest-impact active recommendations ranked by projected annual savings. ReturnsTopRecommendationDTOs with rank, projected annual CO₂e savings, and projected annual cost savings. - Prometheus:
greenkube_top_recommendationsgauge — New Prometheus gauge exposing ranked active recommendations. - Grafana: Actionable Recommendations section — New dashboard row showing the top-N ranked recommendations as horizontal bar cards with projected annual CO₂e and cost savings.
- App startup recommendation scan: The API now triggers a full scan for recommendations on startup, ensuring the dashboard and API have immediate data to work with even if no new metrics have come in since the last scan.
Changed
- Grafana:
$nodeand$regiontemplate variables removed — Both variables have been dropped from the dashboard. - Grafana: Dashboard generator cleaned up — Unused panel helpers removed from
scripts/build_grafana_dashboard.py, together with the constants no longer referenced by any remaining panel.
Fixed
- Recommendations: CPU and memory rightsizing - Stop displaying rightsizing recommendations that suggest increasing requests.
- Security: Frontend dependency updates —
package.json/package-lock.jsonupdated to remediate Trivy-flagged vulnerabilities in transitive frontend dependencies.
Docker: docker pull greenkube/greenkube:0.2.11
Helm:
helm repo add greenkube https://GreenKubeCloud.github.io/GreenKube
helm repo update
helm install greenkube greenkube/greenkube -n greenkube --create-namespace