Skip to main content
Verfolgen Sie die Nutzung, Kosten und Toolaktivität von Claude Code in Ihrer Organisation, indem Sie Telemetriedaten über OpenTelemetry (OTel) exportieren. Claude Code exportiert Metriken als Zeitreihendaten über das Standard-Metriken-Protokoll, Ereignisse über das Logs/Events-Protokoll und optional verteilte Traces über OpenTelemetry.
Informationen zur Claude API oder zu Managed Agents finden Sie unter OpenTelemetry für die Claude API.

Schnellstart

Konfigurieren Sie OpenTelemetry mit Umgebungsvariablen:
Um eine Einrichtung zu überprüfen, die Metriken exportiert, suchen Sie in Ihrem Backend nach der Metrik claude_code.session.count, die Claude Code beim Start einer Sitzung ausgibt. Um eine reine Logs-Einrichtung zu überprüfen, senden Sie eine Eingabeaufforderung und suchen Sie nach dem Ereignis claude_code.user_prompt. Wenn nichts ankommt, führen Sie Claude Code mit claude --debug-file <path> aus und überprüfen Sie das Protokoll, das es in diesen Pfad schreibt. Claude Code meldet Fehler von den konfigurierten Exportern als [3P telemetry]-Fehler, wobei 3P für Drittanbieter steht. Zeilen mit dem Präfix [Anthropic telemetry] beschreiben Anthropics separate operative Telemetrie und deuten nicht auf ein Problem mit Ihrer Einrichtung hin. Für vollständige Konfigurationsoptionen siehe die OpenTelemetry-Spezifikation.

Administratorkonfiguration

Administratoren können OpenTelemetry-Einstellungen für alle Benutzer über die verwaltete Einstellungsdatei konfigurieren. Weitere Informationen zur Anwendung von Einstellungen finden Sie unter Einstellungspriorität. Beispiel für verwaltete Einstellungskonfiguration:
In der Claude Desktop-App lesen Code-Tab-Sitzungen diese verwalteten Einstellungen aus den Quellen, die jede Art von Desktop-Sitzung erreichen. Das OpenTelemetry-Formular für Cowork unter Überwachung in den Daten- und Datenschutzeinstellungen der Admin-Konsole gilt nur für Cowork-Sitzungen, daher exportieren weder die Terminal-CLI noch der Code-Tab zu einem Collector, den Sie dort festlegen. Claude Code ignoriert die OpenTelemetry-Exporter-Variablen in der .claude/settings.json und .claude/settings.local.json eines Repositorys, daher kann ein Repository diese nicht verwenden, um Telemetrie einzuschalten, zu wählen, wohin sie geht, oder Inhalte zu erfassen. Setzen Sie sie in verwalteten Einstellungen, oder lassen Sie jeden Entwickler sie in seiner Shell oder ~/.claude/settings.json setzen. Ein Repository kann ein Signal immer noch ausschalten, indem es seinen Exporter-Selektor, wie OTEL_LOGS_EXPORTER, auf none setzt, es sei denn, verwaltete Einstellungen, eine --settings-Datei oder die Umgebung, aus der Sie Claude Code starten, setzen diese Variable. Claude Code übergibt OTEL_* Umgebungsvariablen nicht an die Subprozesse, die es erzeugt, einschließlich des Bash-Tools, Hooks, MCP-Server und Sprachserver. Eine OpenTelemetry-instrumentierte Anwendung, die Sie über das Bash-Tool ausführen, erbt nicht den Exporter-Endpunkt oder die Header von Claude Code, daher setzen Sie diese Variablen direkt im Befehl, wenn diese Anwendung ihre eigene Telemetrie exportieren muss.

Wie verwaltete Einstellungen das OTLP-Ziel sperren

Wenn Sie eine OTEL_EXPORTER_OTLP_* Variable in verwalteten Einstellungen setzen, entfernt Claude Code bei der Initialisierung konfligierende von Entwicklern gesetzte Variablen und protokolliert eine Warnung im Debug-Protokoll. Was entfernt wird, hängt davon ab, welche Variable Sie setzen:
  • Endpunkte: Wenn Sie OTEL_EXPORTER_OTLP_ENDPOINT setzen, entfernt Claude Code jeden von Entwicklern gesetzten signalspezifischen Endpunkt. Entwickler können ein Signal nicht auf einen anderen Collector verweisen, daher müssen Sie die signalspezifischen Endpunkt-Variablen nicht auch in verwalteten Einstellungen setzen.
  • Protokolle: Wenn Sie OTEL_EXPORTER_OTLP_PROTOCOL setzen, entfernt Claude Code jeden von Entwicklern gesetzten signalspezifischen Protokoll.
  • Anmeldedaten: Wenn Sie OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_CLIENT_KEY oder OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE setzen, entfernt Claude Code die von Entwicklern gesetzten signalspezifischen Versionen dieser Variable sowie jede von Entwicklern gesetzte Endpunkt-Variable, generisch oder signalspezifisch, da diese Anmeldedaten sonst einen Collector erreichen würden, den die verwalteten Einstellungen nicht ausgewählt haben.
  • Exporter-Selektoren: OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER und der Beta-OTEL_TRACES_EXPORTER folgen der normalen Pro-Schlüssel-Priorität. Eine Einstellung eines Entwicklers kann ein Signal immer noch deaktivieren oder auf den Console-Exporter umschalten, daher setzen Sie die Selektoren auch in verwalteten Einstellungen, wenn Sie sie sperren müssen. Über Admin-Quellen folgt OTEL_LOGS_EXPORTER der Telemetrie-Einheit, während die anderen beiden Selektoren pro Schlüssel zusammengeführt werden. Erfordert Claude Code v2.1.223 oder später.
  • Beta-Tracing-Endpunkte: Mit detailliertem Beta-Tracing aktiv exportiert Claude Code Logs und Traces zu BETA_TRACING_ENDPOINT statt über die Logs- und Traces-Exporter. Claude Code entfernt daher einen von Entwicklern gesetzten BETA_TRACING_ENDPOINT, wenn eine dieser verwalteten Einstellungen das Ziel eines Signals entscheidet:
    • Ein generischer oder Logs/Traces-Endpunkt oder Anmeldedaten
    • Ein otelHeadersHelper
    • Ein Logs- oder Traces-Exporter-Selektor auf none, console oder leer gesetzt, Werte, die das Signal von einem Collector fernhalten
    • CLAUDE_CODE_ENABLE_TELEMETRY ausgeschaltet
    Ein nur-Metriken-Endpunkt oder Anmeldedaten entfernen ihn nicht. Vor v2.1.251 leitete ein von Entwicklern gesetzter BETA_TRACING_ENDPOINT die Logs und Traces um, die detailliertes Beta-Tracing exportiert, selbst wenn verwaltete Einstellungen den Collector festlegten.
Claude Code entfernt signalspezifische Variablen nicht, die Sie in verwalteten Einstellungen selbst setzen, daher können Sie ein Signal zu einem anderen Collector leiten, indem Sie seine Variable dort setzen, wie das SIEM-Beispiel zeigt. Wenn Sie dort eine signalspezifische Anmeldedaten setzen, entfernt Claude Code den von Entwicklern gesetzten Endpunkt für dieses Signal. Dieses Entfernungsverhalten ändert, wohin Telemetrie geliefert wird, nicht was Claude Code erfasst. Vor v2.1.217 folgte jede Variable unabhängig der Pro-Schlüssel-Einstellungspriorität, daher leitete ein signalspezifischer Endpunkt, der in Benutzereinstellungen oder der Shell gesetzt wurde, dieses Signal vom verwalteten Collector ab. Wenn die Desktop-App oder ein selbst gehosteter Umgebungs-Runner Claude Code startet und einen OTLP-Endpunkt in der bereitgestellten Umgebung benennt, heftet Claude Code das Ziel auf die gleiche Weise fest: Die Telemetrie-Variablen des Launchers entfernen von Entwicklern gesetzte Variablen genau wie verwaltete Einstellungen. Claude Code entfernt Variablen nicht, die der Launcher selbst gesetzt hat. Erfordert Claude Code v2.1.251 oder später.

Konfigurationsdetails

Allgemeine Konfigurationsvariablen

Diese Variablen konfigurieren Exporter, Endpunkte und Exportverhalten für alle Bereitstellungen. Wenn Sie eine signalspezifische Endpunkt- oder Protokollvariable wie OTEL_EXPORTER_OTLP_METRICS_ENDPOINT setzen, verwendet Claude Code diese statt der generischen Variable für dieses Signal. Wenn Sie eine signalspezifische Header-Variable wie OTEL_EXPORTER_OTLP_METRICS_HEADERS setzen, führt Claude Code diese mit dem generischen OTEL_EXPORTER_OTLP_HEADERS für dieses Signal zusammen. Auf Maschinen mit verwalteten Einstellungen siehe Wie verwaltete Einstellungen das OTLP-Ziel sperren, um zu erfahren, was Claude Code entfernt.