Use OTEL_RESOURCE_ATTRIBUTES to Track Claude Code Costs by Team
If you're rolling out Claude Code across multiple teams, you'll want to know who's spending what. The OTEL_RESOURCE_ATTRIBUTES environment variable lets you tag all telemetry data with custom attributes like team, department, or cost centre.
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4317
export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"
These attributes get attached to every metric and event Claude Code exports, so you can filter dashboards, set up per-team alerts, and track costs by cost centre in your observability backend.
For centralized deployment, push these settings through managed settings so every developer gets the right tags automatically:
{
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_RESOURCE_ATTRIBUTES": "department=engineering,team.id=platform"
}
}
One gotcha: values in OTEL_RESOURCE_ATTRIBUTES cannot contain spaces. Use underscores or camelCase instead. org.name=My Company will break, but org.name=My_Company works fine.
Tag your telemetry by team so you always know where the tokens are going.
Log in to leave a comment.
The autoUpdatesChannel setting pins Claude Code to a stable release track that skips versions with major regressions.
The language setting makes Claude respond in your preferred language by default, across every session and project.
The attribution setting lets you customize or completely remove Claude's Co-Authored-By trailer from git commits and pull requests.