Skip to content
GreenKube

Multi-Resource Monitoring

GreenKube provides comprehensive resource monitoring that goes far beyond basic CPU and memory metrics, giving you full visibility into your cluster’s resource consumption.

  • Usage — Actual CPU seconds consumed per pod
  • Requests vs. Limits — Configuration vs. actual consumption
  • Throttling — Detect pods being CPU-throttled
  • Per-core breakdown — Utilization across individual cores
  • Working set — Actual memory in use
  • RSS — Resident Set Size
  • Requests vs. Limits — Identify over/under-provisioned workloads
  • OOM risk — Pods approaching their memory limits
  • Bytes transmitted — Outbound network traffic per pod
  • Bytes received — Inbound network traffic per pod
  • Packet rate — Packets per second for anomaly detection
  • Cross-namespace traffic — East-west traffic patterns
  • Read throughput — Bytes read per second
  • Write throughput — Bytes written per second
  • IOPS — I/O operations per second
  • Latency — Read/write latency percentiles
  • PVC usage — Persistent Volume Claim utilization
  • Capacity planning — Growth trends and forecasting
  • Orphaned volumes — PVCs not attached to any pod
  • Restart count — Track instability across workloads
  • Uptime — Time since last restart
  • Phase — Running, Pending, Failed, Succeeded
  • Container status — Individual container readiness

Note: GPU data is not collected and used for now. It’s planned for future releases.

GreenKube collects metrics from multiple sources:

SourceMetrics
PrometheusCPU, memory, network, disk
Kubernetes APIPod status, restarts, node info, HPAs
OpenCostCost allocation data
Electricity MapsCarbon intensity per region
Prometheus ─┐
K8s API ────┼──→ Async Collector ──→ Processor ──→ Storage
OpenCost ───┤ │
Elec. Maps ─┘ Dashboard/API

The collection pipeline runs in phases: node discovery first (sequential), then zone resolution, then concurrent metrics collection via asyncio.gather, then carbon intensity prefetch and final assembly. This minimises overhead on your cluster.

  • Raw metrics (5-min) — Retained for 7 days (configurable via METRICS_RAW_RETENTION_DAYS)
  • Hourly aggregates — Kept indefinitely by default (configurable via METRICS_AGGREGATED_RETENTION_DAYS, default -1 = no limit). Required for multi-year CSRD/ESRS E1 reporting.
  • Compression — Raw rows are compressed into hourly aggregates after 24 hours (METRICS_COMPRESSION_AGE_HOURS)
  • Export — CSV/JSON for any time range via /api/v1/report/export