Cloud cost monitoring is moving beyond just preventing runaway cost explosions – it’s about empowering JupyterHub administrators with the guardrails they need to run efficient, transparent, and sustainable infrastructures. A cloud cost bill can show a broad view of services and machines provisioned, but how can we provide granular insights into each user and the value they are deriving from the hub on an application level?
This tool provides a per-user cost reporting system for JupyterHubs running on AWS, enabling hub administrators to monitor and report the costs associated with each user. This approach delivers cloud observability and cost transparency that can be reliably deployed using Kubernetes and integrated with Zero to JupyterHub distributions.
- Metric Collection – Prometheus collects resource usage metrics (including CPU, memory, and storage) from individual user pods via standard and custom exporters.
- Cost Estimation – Usage is correlated with AWS cost data to estimate per-user costs.
- Visualization – Grafana dashboards display rich, interactive views of usage and cost data, making it easy to monitor trends, identify high-cost workloads, and generate reports for funders and decision-makers.
📦 Packaged helm charts for this project can be found at https://2i2c.org/jupyterhub-cost-monitoring/.
This project is designed to be compatible with Zero to JupyterHub distributions, making it easy to deploy in the cloud with Kubernetes.
Add this project as a subchart of the z2jh Chart.yaml file with
dependencies:
- name: jupyterhub-cost-monitoring
version: "<version-number>"
repository: "https://2i2c.org/jupyterhub-cost-monitoring/"
condition: jupyterhub-cost-monitoring.enabledIn the values file, enable the cost monitoring chart for your Kubernetes cluster:
jupyterhub-cost-monitoring:
enabled: true
extraEnv:
- name: CLUSTER_NAME
value: "<name-of-cluster>"An example of configuring an AWS IAM role to talk to the AWS Cost Explorer API can be found in the 2i2c Infrastructure Guide.
For group costs, `jupyterhub-groups-exporter needs to be installed. This is an exporter that exposes JupyterHub user group information to Prometheus.
Documentation can be found at https://jupyterhub-cost-monitoring.readthedocs.io/en/latest/
Contributions to the jupyterhub-cost-monitoring project are welcome! Please follow the standard GitHub workflow:
- Fork the repository.
- Create a feature branch.
- Submit a pull request.
Please refer to CONTRIBUTING.md for more details.
This project is licensed under the BSD 3-Clause License.
