Tracarbon: Track GPU power and carbon emissions while running local LLMs Tracarbon, a Python library that tracks device energy consumption and calculates carbon emissions, now supports monitoring GPU power and carbon output while running local large language models. It detects the user's location and device automatically and exports measurements via CLI or API to exporters such as Prometheus and Datadog. The library covers Apple Silicon, Linux (Intel/AMD), and Windows NVIDIA GPUs, with cloud provider support for AWS, GCP, and Azure. Tracarbon is a Python library that tracks your device's energy consumption and calculates your carbon emissions. It detects your location and your device automatically before starting to export measurements to an exporter. It could be used as a CLI with already defined metrics or programmatically with the API by defining the metrics that you want to have. Read more in this article https://medium.com/@florian.valeye/tracarbon-track-your-devices-carbon-footprint-fb051fcc9009 . Install Tracarbon pip install tracarbon Install one or more exporters from the list pip install 'tracarbon datadog,prometheus,kubernetes ' | Devices | Description | |---|---| | Mac | ✅ Apple Silicon CPU, GPU, memory and Neural Engine energy via IOReport no sudo . Excludes display and peripherals. Fallbacks: powermetrics sudo , then ioreg . | | Linux | ✅ Supports Intel and AMD processors via RAPL https://web.eece.maine.edu/~vweaver/projects/rapl/ . Intel uses the powercap interface. AMD is supported on kernel 5.8+ powercap or via the amd energy driver HWMON . Works with containers on Kubernetes https://kubernetes.io/ using the Metric API https://kubernetes.io/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/ metrics-api if available. | | Windows | ✅ NVIDIA GPU power via nvidia-smi . CPU, memory and host totals are unavailable. | | Cloud Provider | Description | |---|---| | AWS | ✅ Use the hardware's usage with the EC2 instances carbon emissions datasets of cloud-carbon-coefficients https://github.com/cloud-carbon-footprint/ccf-coefficients/blob/main/data/aws-instances.csv . | | GCP | ✅ Use the hardware's usage with the GCP instances carbon emissions datasets of cloud-carbon-coefficients https://github.com/cloud-carbon-footprint/ccf-coefficients/blob/main/data/gcp-instances.csv . | | Azure | ✅ Use the hardware's usage with the Azure instances carbon emissions datasets of cloud-carbon-coefficients https://github.com/cloud-carbon-footprint/ccf-coefficients/blob/main/data/azure-instances.csv . | | GPU | Description | |---|---| | NVIDIA | ✅ Supported via nvidia-smi . Works on Linux, Windows, and Intel Macs. Supports multiple GPUs. | | AMD | ✅ Supported via rocm-smi or amd-smi on Linux. Supports multiple GPUs. | | Apple Silicon | ✅ Integrated GPU power via IOReport, without sudo. Falls back to powermetrics requires sudo . | | Intel | ❌ Not yet implemented. | | Exporter | Description | |---|---| | Stdout | Print the metrics in Stdout. | | JSON | Write the metrics in a JSON file. | | Prometheus | Send the metrics to Prometheus. | | Datadog | Send the metrics to Datadog. | | Location | Description | Source | |---|---|---| | Worldwide | Get the latest co2g/kwh in near real-time using the CO2Signal or ElectricityMaps APIs. See here https://app.electricitymaps.com/developer-hub/api/reference for available Electricity Maps query modes. | CO2Signal API https://www.co2signal.com or ElectricityMaps https://app.electricitymaps.com/developer-hub/api/reference | | Europe | Static file created from the European Environment Agency Emission for the co2g/kwh in European countries. | EEA website https://www.eea.europa.eu/en/analysis/maps-and-charts/co2-emission-intensity-15 | | AWS | Static file of the AWS Grid emissions factors. | cloud-carbon-coefficients https://github.com/cloud-carbon-footprint/cloud-carbon-coefficients/blob/main/data/grid-emissions-factors-aws.csv | | GCP | Static file of the GCP Grid emissions factors 2024 yearly data . | GoogleCloudPlatform/region-carbon-info https://github.com/GoogleCloudPlatform/region-carbon-info/blob/main/data/yearly/2024.csv | | Azure | Static file of the Azure Grid emissions factors. | cloud-carbon-coefficients https://github.com/cloud-carbon-footprint/cloud-carbon-coefficients/blob/main/data/grid-emissions-factors-azure.csv | The environment variables can be set from an environment file .env . | Parameter | Description | |---|---| | TRACARBON CO2SIGNAL API KEY | The api key received from CO2Signal https://www.co2signal.com or ElectricityMaps https://app.electricitymaps.com/developer-hub/api/reference . | | TRACARBON CO2SIGNAL URL | The url of CO2Signal https://docs.co2signal.com/ get-latest-by-country-code is the default endpoint to retrieve the last known state of the zone, but it could be changed to ElectricityMaps https://app.electricitymaps.com/developer-hub/api/reference . | | TRACARBON METRIC PREFIX NAME | The prefix to use in all the metrics name. | | TRACARBON INTERVAL IN SECONDS | The interval in seconds to wait between the metrics evaluation. | | TRACARBON LOG LEVEL | The level to use for displaying the logs. | | TRACARBON IPINFO TOKEN | An optional ipinfo.io https://ipinfo.io API token used for country detection from the IP address, lifting the anonymous rate limit. | | TRACARBON KUBERNETES NODE NAME | The Kubernetes node name used to scope container metrics to the node being measured. Falls back to NODE NAME when unset. | Request your API key - Go to CO2Signal https://www.co2signal.com/ and get your free API key for non-commercial use, or go to ElectricityMaps https://app.electricitymaps.com/developer-hub/api/reference for commercial use. - This API is used to retrieve the last known carbon intensity in gCO2eq/kWh of electricity consumed in your location. - Set your API key in the environment variables, in the .env file or directly in the configuration. - If you would like to start without an API key, it's possible, the carbon intensity will be loaded statistically from a file. - Launch Tracarbon 🚀 Command Line tracarbon run Prometheus with Kubernetes containers tracarbon run --exporter-name Prometheus --containers With the default metric prefix, container metrics are exposed with these Prometheus names: | Metric | Labels | |---|---| | tracarbon energy consumption kubernetes total | pod name, pod namespace, container name, platform, containers, location, units | | tracarbon energy consumption kubernetes cpu | pod name, pod namespace, container name, platform, containers, location, units | | tracarbon energy consumption kubernetes memory | pod name, pod namespace, container name, platform, containers, location, units | | tracarbon carbon emission kubernetes total | pod name, pod namespace, container name, platform, containers, location, source, units | | tracarbon carbon emission kubernetes cpu | pod name, pod namespace, container name, platform, containers, location, source, units | | tracarbon carbon emission kubernetes memory | pod name, pod namespace, container name, platform, containers, location, source, units | Zero values are exported. If Kubernetes returns no pod metrics, the CLI logs No Kubernetes container metrics were collected. Host metrics are still exported. When running in Kubernetes, deploy Tracarbon per node and set NODE NAME from spec.nodeName with the Downward API so container metrics are scoped to the measured node. API python from tracarbon import TracarbonBuilder, TracarbonConfiguration configuration = TracarbonConfiguration Your configuration tracarbon = TracarbonBuilder configuration=configuration .build tracarbon.start Your code total co2g = tracarbon.stop The CO2 grams emitted while it was running with tracarbon: Your code report = tracarbon.report Get the report print report.total co2g total co2g is None when no host carbon emission metric was collected. The total reflects collected samples. Local: using uv make init make test-unit The documentation is hosted here: https://fvaleye.github.io/tracarbon/documentation https://fvaleye.github.io/tracarbon/documentation - 2025-11 Carbon Emission Quantification of Machine Learning: A Review https://doi.org/10.1109/TSUSC.2025.3578834 - 2025-04-25 A Critical Analysis of Machine Learning Eco-feedback Tools through the Lens of Sustainable HCI https://doi.org/10.1145/3706598.3713198 - 2025-04-25 "Should I choose a smaller model?": Understanding ML Model Selection and Its Impact on Sustainability https://doi.org/10.1145/3706598.3713240 - 2024-07-08 Balancing computational chemistry's potential with its environmental impact https://doi.org/10.1039/D4GC01745E - 2023-06-26 GREENER principles for environmentally sustainable computational science https://doi.org/10.1038/s43588-023-00461-y - 2023-01-19 eco2AI: Carbon Emissions Tracking of Machine Learning Models as the First Step Towards Sustainable AI https://doi.org/10.1134/S1064562422060230