Usage#
After Installation, use the CLI to monitor your device or the Python API to measure a workload.
CLI#
Start tracking:
tracarbon run
Press Ctrl+C to stop. No API key is required.
Keep Tracarbon running while you use your local LLM. See the local LLM example.
Python API#
Wrap your workload in a tracker:
from tracarbon import TracarbonBuilder
with TracarbonBuilder().build() as tracker:
run_workload()
print(tracker.report.total_co2g)
The block starts and stops tracking. total_co2g is the total CO2 in grams,
or None if unavailable. For manual control, use tracker.start() and
tracker.stop().
Configuration#
Choose a country:
tracarbon run --country-code-alpha-iso-2 fr
Set an API key for live carbon intensity:
TRACARBON_CO2SIGNAL_API_KEY=API_KEY tracarbon run
In Python, pass a TracarbonConfiguration to the builder:
from tracarbon import TracarbonBuilder, TracarbonConfiguration
configuration = TracarbonConfiguration(interval_in_seconds=1)
tracker = TracarbonBuilder(configuration=configuration).build()
Choose metrics#
To collect both energy consumption and carbon emissions:
from tracarbon import TracarbonBuilder
from tracarbon.exporters import StdoutExporter
from tracarbon.general_metrics import CarbonEmissionGenerator, EnergyConsumptionGenerator
metrics = [EnergyConsumptionGenerator(), CarbonEmissionGenerator()]
exporter = StdoutExporter(metric_generators=metrics)
with TracarbonBuilder(exporter=exporter).build() as tracker:
run_workload()
For custom metrics, pass your async measurement function as value:
from tracarbon import TracarbonBuilder
from tracarbon.exporters import Metric, MetricGenerator, StdoutExporter
metric = Metric(name="custom_metric", value=read_metric)
exporter = StdoutExporter(metric_generators=[MetricGenerator(metrics=[metric])])
with TracarbonBuilder(exporter=exporter).build() as tracker:
run_workload()
Export metrics#
Send metrics to Datadog:
DATADOG_API_KEY=API_KEY DATADOG_APP_KEY=APP_KEY tracarbon run --exporter-name Datadog
Export Kubernetes container metrics to Prometheus on Linux:
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.