Claude Code integration with Coralogix
Claude Code ships with built-in OpenTelemetry support, which means you can send its full telemetry—token usage, model costs, tool calls, code changes, and session activity—directly to Coralogix with no custom code required. Once connected, every Claude Code session in your organization streams live data to a dedicated dashboard, giving you cost visibility, usage patterns, and code impact in one place.
Supported environments
- OS: macOS, Linux (*nix)
- Shell:
bash,zsh
What you need
- A Coralogix account with a Send-Your-Data API key. In Coralogix, navigate to Settings, then API Keys.
- Your Coralogix OTLP endpoint:
ingress.:443. Use the domain selector at the top of this page to select your region. - Claude Code installed and running on your machine.
Set up
Deploy org-wide with managed settings
For Claude for Teams or Enterprise (Claude Code 2.1.38 or newer), use server-managed settings to push the Coralogix configuration to every developer automatically. No shell scripts, no .env distribution, no per-developer action required.
In Claude.ai, navigate to Admin Settings, then Claude Code, then Managed Settings and select Manage.
Paste the settings JSON:
{ "env": { "CLAUDE_CODE_ENABLE_TELEMETRY": "1", "OTEL_METRICS_EXPORTER": "otlp", "OTEL_LOGS_EXPORTER": "otlp", "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf", "OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_CX_OTLP_ENDPOINT>", "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <YOUR_CX_API_KEY>", "OTEL_RESOURCE_ATTRIBUTES": "cx.application.name=<APP_NAME>,cx.subsystem.name=<SUBSYSTEM_NAME>", "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE": "delta" } }Replace the placeholders with your Coralogix values.
Select Add settings.
The admin console shows the configured settings JSON:
Settings reach all Claude Code clients at their next startup or within the hourly polling cycle.
On their next claude startup, developers see a one-time approval dialog listing the configured environment variables. They select Yes, I trust these settings and Claude Code restarts with telemetry active.
Per-developer setup
Use this if your organization is not on Claude for Teams or Enterprise, or if you prefer not to use server-managed settings.
Install
Clone the Coralogix AI agent instrumentation repository and navigate to the Claude Code directory:
git clone https://github.com/coralogix/ai-agent-instrumentation.git
cd ai-agent-instrumentation/claude-code
Configure
Copy the example environment file:
Open
.envand set the following values:CX_API_KEY— your Send-Your-Data API keyCX_OTLP_ENDPOINT— your OTLP endpoint (ingress.:443)
Activate the instrumentation and start Claude Code:
Claude Code sessions now stream telemetry to Coralogix.
Make it permanent
To activate instrumentation automatically in every new terminal session, add the following line to ~/.zshrc:
Advanced: set environment variables directly
If you prefer to set the environment variables without the activation script, add the following to ~/.zshrc or ~/.bashrc:
if [ -f "$HOME/path/to/claude-code-coralogix/.env" ]; then
set -a; source "$HOME/path/to/claude-code-coralogix/.env"; set +a
fi
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT="${CX_OTLP_ENDPOINT}"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ${CX_API_KEY}"
export OTEL_RESOURCE_ATTRIBUTES="cx.application.name=${CX_APPLICATION_NAME},cx.subsystem.name=${CX_SUBSYSTEM_NAME}"
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta
Alternatively, set these values in Claude Code's settings file at ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_CX_OTLP_ENDPOINT>",
"OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <YOUR_CX_API_KEY>",
"OTEL_RESOURCE_ATTRIBUTES": "cx.application.name=<APP>,cx.subsystem.name=<SUBSYSTEM>",
"OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE": "delta"
}
}
Validate the integration
After running a Claude Code session, confirm that data is flowing:
- In Coralogix, navigate to Metrics Explorer and search for the metric prefix
claude_code. Token usage and cost data appear here. - Navigate to Logs and filter by your service name to see prompts and tool call events.
- Open Code Agents Observability to see the full session dashboard.
Monitor data in Coralogix
Import the dashboard
- In Coralogix, navigate to Dashboards, then select New Dashboard, then Import from JSON.
- Upload
coralogix-dashboard.jsonfrom the cloned repository.
Data available
| Signal | Where in Coralogix |
|---|---|
| Token usage and costs | Metrics Explorer (claude_code prefix) |
| Prompts and tool calls | Logs |
| Code changes and commits | Dashboard |
Code Agents Observability
Use the Code Agents Observability dashboard to track costs, usage, code impact, and user activity across all sessions in your organization.
Complete configuration
For the full configuration reference including all available environment variables, see claude-code in the GitHub repository.
Configuration examples
Reduce the metric export interval during testing
Lower the export interval to see data faster while validating your setup:
Activate prompt logging
Set OTEL_LOG_USER_PROMPTS=1 to include prompt text in claude_code.user_prompt log events. Prompt logging is off by default.
Activate tool detail logging
Set OTEL_LOG_TOOL_DETAILS=1 to add Model Context Protocol (MCP) server and tool names to claude_code.tool_result log events. Tool detail logging is off by default.
Add custom resource dimensions
Attach team or environment labels to every signal:
export OTEL_RESOURCE_ATTRIBUTES="cx.application.name=claude-code,cx.subsystem.name=claude-code-sessions,team=platform,env=prod"
Data reference
Metrics
All metrics use delta temporality and appear in Metrics Explorer under the claude_code prefix.
| Metric | Labels | What it tracks |
|---|---|---|
claude_code_session_count_total | session_id, user_account_uuid | Sessions started |
claude_code_token_usage_tokens_total | model, type | Tokens by model and type (input, output, cacheRead, cacheCreation) |
claude_code_cost_usage_USD_total | model | Estimated USD cost per model |
claude_code_lines_of_code_count_total | type | Lines added and removed |
claude_code_commit_count_total | — | Git commits made |
claude_code_pull_request_count_total | — | Pull requests created |
claude_code_code_edit_tool_decision_total | decision, source, tool_name, language | Accept and reject decisions on code edits |
claude_code_active_time_total_s_total | type | Seconds Claude Code was actively processing (cli = AI/tool work, user = keyboard interaction) |
Log events
Query log events using DataPrime or Lucene, filtered by your application and subsystem names.
| Event type | Key attributes |
|---|---|
claude_code.user_prompt | session.id, user.account_uuid, prompt (opt-in), model |
claude_code.api_request | model, token counts, cost, latency |
claude_code.api_error | status, error message |
claude_code.tool_result | tool name, duration, outcome |
claude_code.tool_decision | tool name, decision, source |
Every signal carries session.id, user.account_uuid, user.email, organization.id, app.version, and terminal.type.
Advanced configuration
| Variable | Default | Purpose |
|---|---|---|
OTEL_METRIC_EXPORT_INTERVAL | 60000 ms | How often the exporter flushes metrics |
OTEL_LOGS_EXPORT_INTERVAL | 5000 ms | Log flush interval |
OTEL_LOG_USER_PROMPTS | off | Set to 1 to include prompt text in log events |
OTEL_LOG_TOOL_DETAILS | off | Set to 1 to add Model Context Protocol (MCP) server and tool names to tool events |
OTEL_METRICS_INCLUDE_SESSION_ID | true | Attaches session.id to metric labels—turn off to reduce cardinality |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | true | Attaches user.account_uuid to metric labels |
Troubleshoot
No data appears in Coralogix
Cause: environment variables were not exported into the active shell. Fix: run source activate.sh again in the same terminal you use to run claude, or add the permanent setup to your shell profile.
Metrics do not appear but logs do
Cause: OTEL_METRICS_EXPORTER is missing or the export interval is too long. Fix: confirm you exported OTEL_METRICS_EXPORTER=otlp and lower OTEL_METRIC_EXPORT_INTERVAL to 10000 while testing.
Costs show as zero
Cause: cost metrics require delta temporality. Fix: confirm you set OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta.

