Spruce
Enrichment pipeline for CUR / FOCUS reports which adds energy and carbon data allowing to report and reduce the impact of the your cloud usage.
https://github.com/digitalpebble/spruce
Category: Consumption
Sub Category: Computation and Communication
Keywords
apache-spark aws carbon-emissions climate cloud greenops greensoftware open-source sustainability
Last synced: 1 day ago
JSON representation
Repository metadata
SPRUCE is an open-source enrichment platform for GreenOps which helps measure and reduce the environmental impact of cloud computing.
- Host: GitHub
- URL: https://github.com/digitalpebble/spruce
- Owner: DigitalPebble
- License: apache-2.0
- Created: 2025-07-17T14:38:32.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-05-25T09:10:51.000Z (9 days ago)
- Last Synced: 2026-05-31T09:02:47.615Z (3 days ago)
- Topics: apache-spark, aws, carbon-emissions, climate, cloud, greenops, greensoftware, open-source, sustainability
- Language: Java
- Homepage: http://opensourcegreenops.cloud/
- Size: 3.96 MB
- Stars: 21
- Watchers: 1
- Forks: 6
- Open Issues: 11
- Releases: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
README.md
SPRUCE
SPRUCE helps estimate the environmental impact of your cloud usage. By leveraging open source models and data, it enriches
usage reports generated by cloud providers and allows you to build reports and visualisations. Having the GreenOps and FinOps data in the same
place makes it easier to expose your costs and impacts side by side.
Why SPRUCE?
Cloud providers do report environmental impact — but at a level of aggregation that makes it impossible to act on. Figures are rolled up at account or service level, cover carbon at best, and sit entirely separate from your cost data. They tell you how you're doing; they don't help you do better.
SPRUCE is built around the idea that actionable GreenOps requires the same granularity as FinOps:
- Resource-level detail — identify which workloads, teams, or environments are driving your footprint, not just your bill.
- Multiple impact dimensions — beyond carbon, SPRUCE models water consumption, giving a fuller picture of your cloud's environmental cost.
- GreenOps and FinOps together — cost and impact share the same pipeline, so trade-off decisions are grounded in real data.
- Open and auditable — built on open source models and public data, so your methodology is transparent, not black-boxed.
- Your data stays yours — running on EMR means your CUR data never leaves your AWS environment.
- Actively maintained — unlike Cloud Carbon Footprint, which has been abandoned, SPRUCE is under active development.
SPRUCE handles CUR reports from AWS and partially supports Azure. However, most of the cost from a typical usage already gets estimates.
How it works
SPRUCE uses Apache Spark® to read and write the usage reports (typically in Parquet format) in a scalable way and, thanks to its modular approach,
splits the enrichment of the data into configurable stages.
A typical sequence of stages would be:
- estimation of embodied emissions from the hardware
- estimation of energy used
- estimation of water consumption
- application of PUE / WUE and other overheads
- application of carbon intensity factors
Have a look at the methodology section of our documentation for more details.
Documentation
The documentation is at https://opensourcegreenops.cloud/. If you can't wait to try SPRUCE, have a look at the tutorial for Docker.
To explore enriched output, see
Explore the results
and Build a simple dashboard.
License
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
Contributing
We welcome contributions to the project, see CONTRIBUTING.md for instructions on how to do so. Contributions are not only about code: by testing the project on your data, talking about it or asking questions, you will be contributing too!
Support
Do you need help with SPRUCE? Want some bespoke work, training or a workshop? We at DigitalPebble, provide consulting services for SPRUCE.
Send us an email at spruce@digitalpebble.com!
Owner metadata
- Name: DigitalPebble Ltd
- Login: DigitalPebble
- Email: github@digitalpebble.com
- Kind: organization
- Description:
- Website: http://www.digitalpebble.com
- Location: Bristol, UK
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1726647?v=4
- Repositories: 27
- Last ynced at: 2024-11-24T19:46:52.245Z
- Profile URL: https://github.com/DigitalPebble
GitHub Events
Total
- Release event: 2
- Delete event: 58
- Pull request event: 118
- Fork event: 1
- Discussion event: 1
- Issues event: 63
- Watch event: 6
- Issue comment event: 50
- Public event: 1
- Push event: 118
- Pull request review comment event: 21
- Pull request review event: 17
- Gollum event: 6
- Create event: 51
Last Year
- Release event: 2
- Delete event: 58
- Pull request event: 118
- Fork event: 1
- Discussion event: 1
- Issues event: 63
- Watch event: 6
- Issue comment event: 50
- Public event: 1
- Push event: 118
- Pull request review comment event: 21
- Pull request review event: 17
- Gollum event: 6
- Create event: 51
Committers metadata
Last synced: 3 days ago
Total Commits: 406
Total Committers: 8
Avg Commits per committer: 50.75
Development Distribution Score (DDS): 0.268
Commits in past year: 405
Committers in past year: 8
Avg Commits per committer in past year: 50.625
Development Distribution Score (DDS) in past year: 0.269
| Name | Commits | |
|---|---|---|
| Julien Nioche | j****n@d****m | 297 |
| Davide Polato | d****3@g****m | 64 |
| dependabot[bot] | 4****] | 25 |
| = | = | 7 |
| nikhiln64 | n****4@g****m | 6 |
| copilot-swe-agent[bot] | 1****t | 3 |
| Julien | j****m@J****l | 3 |
| tejas-2232 | t****8@g****m | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 74
Total pull requests: 67
Average time to close issues: 20 days
Average time to close pull requests: 1 day
Total issue authors: 3
Total pull request authors: 7
Average comments per issue: 1.04
Average comments per pull request: 1.42
Merged pull request: 60
Bot issues: 0
Bot pull requests: 12
Past year issues: 74
Past year pull requests: 67
Past year average time to close issues: 20 days
Past year average time to close pull requests: 1 day
Past year issue authors: 3
Past year pull request authors: 7
Past year average comments per issue: 1.04
Past year average comments per pull request: 1.42
Past year merged pull request: 60
Past year bot issues: 0
Past year bot pull requests: 12
Top Issue Authors
- jnioche (72)
- adamwirth (1)
- dpol1 (1)
Top Pull Request Authors
- jnioche (44)
- dependabot[bot] (12)
- dpol1 (4)
- davide954 (3)
- nikhiln64 (2)
- de9uch1 (1)
- TheSamStewart (1)
Top Issue Labels
- enhancement (32)
- help wanted (12)
- good first issue (12)
- Azure (8)
- documentation (7)
- bug (2)
- dependencies (2)
- docker (1)
Top Pull Request Labels
- enhancement (28)
- dependencies (14)
- documentation (8)
- java (8)
- Azure (5)
- github_actions (4)
- bug (1)
Dependencies
- actions/attest-build-provenance v4 composite
- actions/checkout v6 composite
- docker/build-push-action v6 composite
- docker/login-action v3 composite
- docker/metadata-action v5 composite
- docker/setup-buildx-action v3 composite
- docker/setup-qemu-action v3 composite
- actions/checkout v6 composite
- actions/configure-pages v5 composite
- actions/deploy-pages v4 composite
- actions/upload-pages-artifact v4 composite
- duckdb *
- markdown *
- weasyprint *
- actions/checkout v4 composite
- actions/setup-java v4 composite
- advanced-security/maven-dependency-submission-action 571e99aab1055c2e71a1e2309b9691de18d6b7d6 composite
- apache/spark 4.0.0-java21 build
- maven 3.9.9-eclipse-temurin-21 build
- org.apache.spark:spark-sql_2.13 4.0.0 provided
- org.junit.jupiter:junit-jupiter-api 5.13.1 test
- org.junit.jupiter:junit-jupiter-engine 5.13.1 test
Score: 5.545177444479562