Skip to content

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.

  1. In Claude.ai, navigate to Admin Settings, then Claude Code, then Managed Settings and select Manage.

  2. 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.

  3. Select Add settings.

    The admin console shows the configured settings JSON:

    Claude.ai admin console showing the managed settings dialog with OTLP configuration

    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.

Claude Code terminal showing the managed settings approval prompt

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

  1. Copy the example environment file:

    cp .env.example .env
    
  2. Open .env and set the following values:

    • CX_API_KEY — your Send-Your-Data API key
    • CX_OTLP_ENDPOINT — your OTLP endpoint (ingress.:443)
  3. Activate the instrumentation and start Claude Code:

    source activate.sh
    claude
    

    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:

source /path/to/claude-code/activate.sh

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:

  1. In Coralogix, navigate to Metrics Explorer and search for the metric prefix claude_code. Token usage and cost data appear here.
  2. Navigate to Logs and filter by your service name to see prompts and tool call events.
  3. Open Code Agents Observability to see the full session dashboard.

Monitor data in Coralogix

Import the dashboard

  1. In Coralogix, navigate to Dashboards, then select New Dashboard, then Import from JSON.
  2. Upload coralogix-dashboard.json from the cloned repository.

Data available

SignalWhere in Coralogix
Token usage and costsMetrics Explorer (claude_code prefix)
Prompts and tool callsLogs
Code changes and commitsDashboard

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:

export OTEL_METRIC_EXPORT_INTERVAL=10000

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.
MetricLabelsWhat it tracks
claude_code_session_count_totalsession_id, user_account_uuidSessions started
claude_code_token_usage_tokens_totalmodel, typeTokens by model and type (input, output, cacheRead, cacheCreation)
claude_code_cost_usage_USD_totalmodelEstimated USD cost per model
claude_code_lines_of_code_count_totaltypeLines added and removed
claude_code_commit_count_totalGit commits made
claude_code_pull_request_count_totalPull requests created
claude_code_code_edit_tool_decision_totaldecision, source, tool_name, languageAccept and reject decisions on code edits
claude_code_active_time_total_s_totaltypeSeconds 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 typeKey attributes
claude_code.user_promptsession.id, user.account_uuid, prompt (opt-in), model
claude_code.api_requestmodel, token counts, cost, latency
claude_code.api_errorstatus, error message
claude_code.tool_resulttool name, duration, outcome
claude_code.tool_decisiontool name, decision, source

Every signal carries session.id, user.account_uuid, user.email, organization.id, app.version, and terminal.type.

Advanced configuration

VariableDefaultPurpose
OTEL_METRIC_EXPORT_INTERVAL60000 msHow often the exporter flushes metrics
OTEL_LOGS_EXPORT_INTERVAL5000 msLog flush interval
OTEL_LOG_USER_PROMPTSoffSet to 1 to include prompt text in log events
OTEL_LOG_TOOL_DETAILSoffSet to 1 to add Model Context Protocol (MCP) server and tool names to tool events
OTEL_METRICS_INCLUDE_SESSION_IDtrueAttaches session.id to metric labels—turn off to reduce cardinality
OTEL_METRICS_INCLUDE_ACCOUNT_UUIDtrueAttaches 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.