Intro
Spendemon is a Prometheus-powered dashboard for exploring Kubernetes footprint and estimating workload cost by cluster, namespace, and pod.
It is built for teams that want fast cost visibility from the metrics they already collect, without introducing a much larger platform first.
Current feature set
Spendemon currently lets you:
- connect one or more clusters through Prometheus endpoints defined in
settings.yaml - browse overview cards plus namespace and pod inventory from the main dashboard
- open a dedicated cost reporting view with per-cluster, per-namespace, and per-pod rollups
- estimate cost from requested CPU, memory, and ephemeral storage
- fall back to observed CPU and memory usage when requests are missing, and mark those pods as estimated
- redistribute costs from shared namespaces such as
kube-systemacross the remaining namespaces in the same cluster - edit pricing, shared namespace settings, and raw YAML from the in-app settings screen
- optionally enable OIDC authentication with
viewerandadmingroup-based authorization
Main routes
Once the app is running, these are the main surfaces:
/for overview cards, namespace inventory, and pod inventory/costreportingfor cost rollups and pod-level cost detail/settingsfor admins to edit pricing and raw configuration/loginand/unauthorizedwhen OIDC is enabled
What you need
Before you start, make sure you have:
- at least one reachable Prometheus endpoint exposing Kubernetes metrics
- a
settings.yamlfile with cluster names, Prometheus URLs, and pricing inputs - optional OIDC provider details if you want authentication enabled
Spendemon can compare multiple clusters from one UI as long as each cluster has a name and prometheusUrl entry in the same config file.
Install at a glance
- Docker for the fastest local test drive
- Kubernetes for cluster deployment
- Build it yourself for local development or custom changes
Recommended path
If you are just getting started, this is the shortest path through the docs:
- Pick an install path: Docker, Helm, or Manifest.
- Configure
settings.yaml. - If needed, enable OIDC and map your viewer/admin groups in the same settings file.