OpenTelemetry-Unterstützung befindet sich derzeit in der Beta-Phase und Details können sich ändern.
Schnellstart
Konfigurieren Sie OpenTelemetry mit Umgebungsvariablen:Die Standard-Exportintervalle betragen 60 Sekunden für Metriken und 5 Sekunden für Logs. Während der Einrichtung möchten Sie möglicherweise kürzere Intervalle für Debugging-Zwecke verwenden. Denken Sie daran, diese für die Produktionsnutzung zurückzusetzen.
Administrator-Konfiguration
Administratoren können OpenTelemetry-Einstellungen für alle Benutzer über die verwaltete Einstellungsdatei konfigurieren. Dies ermöglicht eine zentrale Kontrolle der Telemetrie-Einstellungen in einer Organisation. Siehe die Einstellungspriorität für weitere Informationen darüber, wie Einstellungen angewendet werden. Die verwaltete Einstellungsdatei befindet sich unter:- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux und WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\ProgramData\ClaudeCode\managed-settings.json
Verwaltete Einstellungen können über MDM (Mobile Device Management) oder andere Geräteverwaltungslösungen verteilt werden. Umgebungsvariablen, die in der verwalteten Einstellungsdatei definiert sind, haben hohe Priorität und können von Benutzern nicht überschrieben werden.
Konfigurationsdetails
Allgemeine Konfigurationsvariablen
| Umgebungsvariable | Beschreibung | Beispielwerte |
|---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | Aktiviert die Telemetrie-Erfassung (erforderlich) | 1 |
OTEL_METRICS_EXPORTER | Metriken-Exporter-Typ(en) (kommagetrennt) | console, otlp, prometheus |
OTEL_LOGS_EXPORTER | Logs/Events-Exporter-Typ(en) (kommagetrennt) | console, otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | Protokoll für OTLP-Exporter (alle Signale) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | OTLP-Collector-Endpunkt (alle Signale) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | Protokoll für Metriken (überschreibt allgemein) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | OTLP-Metriken-Endpunkt (überschreibt allgemein) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | Protokoll für Logs (überschreibt allgemein) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | OTLP-Logs-Endpunkt (überschreibt allgemein) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | Authentifizierungsheader für OTLP | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | Client-Schlüssel für mTLS-Authentifizierung | Pfad zur Client-Schlüsseldatei |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | Client-Zertifikat für mTLS-Authentifizierung | Pfad zur Client-Zertifikatsdatei |
OTEL_METRIC_EXPORT_INTERVAL | Exportintervall in Millisekunden (Standard: 60000) | 5000, 60000 |
OTEL_LOGS_EXPORT_INTERVAL | Logs-Exportintervall in Millisekunden (Standard: 5000) | 1000, 10000 |
OTEL_LOG_USER_PROMPTS | Aktiviert die Protokollierung von Benutzer-Prompt-Inhalten (Standard: deaktiviert) | 1 zum Aktivieren |
Metriken-Kardinalitätskontrolle
Die folgenden Umgebungsvariablen steuern, welche Attribute in Metriken enthalten sind, um die Kardinalität zu verwalten:| Umgebungsvariable | Beschreibung | Standardwert | Beispiel zum Deaktivieren |
|---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | Attribut session.id in Metriken einschließen | true | false |
OTEL_METRICS_INCLUDE_VERSION | Attribut app.version in Metriken einschließen | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | Attribut user.account_uuid in Metriken einschließen | true | false |
Dynamische Header
Für Unternehmensumgebungen, die dynamische Authentifizierung erfordern, können Sie ein Skript konfigurieren, um Header dynamisch zu generieren:Einstellungskonfiguration
Fügen Sie zu Ihrer.claude/settings.json hinzu:
Skriptanforderungen
Das Skript muss gültiges JSON mit String-Schlüssel-Wert-Paaren ausgeben, die HTTP-Header darstellen:Wichtige Einschränkungen
Header werden nur beim Start abgerufen, nicht während der Laufzeit. Dies ist auf Einschränkungen der OpenTelemetry-Exporter-Architektur zurückzuführen. Für Szenarien, die häufige Token-Aktualisierung erfordern, verwenden Sie einen OpenTelemetry Collector als Proxy, der seine eigenen Header aktualisieren kann.Multi-Team-Organisationsunterstützung
Organisationen mit mehreren Teams oder Abteilungen können benutzerdefinierte Attribute hinzufügen, um zwischen verschiedenen Gruppen zu unterscheiden, indem Sie die UmgebungsvariableOTEL_RESOURCE_ATTRIBUTES verwenden:
- Metriken nach Team oder Abteilung filtern können
- Kosten pro Kostenstelle verfolgen können
- Team-spezifische Dashboards erstellen können
- Warnungen für bestimmte Teams einrichten können
Wichtige Formatierungsanforderungen für OTEL_RESOURCE_ATTRIBUTES:Die Umgebungsvariable Hinweis: Das Zitieren des gesamten Schlüssel=Wert-Paares (z. B.
OTEL_RESOURCE_ATTRIBUTES folgt der W3C Baggage-Spezifikation, die strenge Formatierungsanforderungen hat:- Keine Leerzeichen erlaubt: Werte dürfen keine Leerzeichen enthalten. Zum Beispiel ist
user.organizationName=My Companyungültig - Format: Muss kommagetrennte Schlüssel=Wert-Paare sein:
key1=value1,key2=value2 - Zulässige Zeichen: Nur US-ASCII-Zeichen ohne Steuerzeichen, Leerzeichen, doppelte Anführungszeichen, Kommas, Semikola und Backslashes
- Sonderzeichen: Zeichen außerhalb des zulässigen Bereichs müssen prozentcodiert sein
"key=value with spaces") wird von der OpenTelemetry-Spezifikation nicht unterstützt und führt dazu, dass Attribute mit Anführungszeichen vorangestellt werden.Beispielkonfigurationen
Verfügbare Metriken und Ereignisse
Standardattribute
Alle Metriken und Ereignisse teilen diese Standardattribute:| Attribut | Beschreibung | Gesteuert durch |
|---|---|---|
session.id | Eindeutige Sitzungskennung | OTEL_METRICS_INCLUDE_SESSION_ID (Standard: true) |
app.version | Aktuelle Claude Code-Version | OTEL_METRICS_INCLUDE_VERSION (Standard: false) |
organization.id | Organisations-UUID (wenn authentifiziert) | Immer einbezogen, wenn verfügbar |
user.account_uuid | Konto-UUID (wenn authentifiziert) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (Standard: true) |
terminal.type | Terminal-Typ (z. B. iTerm.app, vscode, cursor, tmux) | Immer einbezogen, wenn erkannt |
Metriken
Claude Code exportiert die folgenden Metriken:| Metrikname | Beschreibung | Einheit |
|---|---|---|
claude_code.session.count | Anzahl der gestarteten CLI-Sitzungen | count |
claude_code.lines_of_code.count | Anzahl der geänderten Codezeilen | count |
claude_code.pull_request.count | Anzahl der erstellten Pull Requests | count |
claude_code.commit.count | Anzahl der erstellten Git-Commits | count |
claude_code.cost.usage | Kosten der Claude Code-Sitzung | USD |
claude_code.token.usage | Anzahl der verwendeten Token | tokens |
claude_code.code_edit_tool.decision | Anzahl der Berechtigungsentscheidungen für Code-Bearbeitungswerkzeuge | count |
claude_code.active_time.total | Gesamtaktive Zeit in Sekunden | s |
Metrik-Details
Sitzungszähler
Wird zu Beginn jeder Sitzung erhöht. Attribute:- Alle Standardattribute
Codezeilen-Zähler
Wird erhöht, wenn Code hinzugefügt oder entfernt wird. Attribute:- Alle Standardattribute
type: ("added","removed")
Pull Request-Zähler
Wird erhöht, wenn Pull Requests über Claude Code erstellt werden. Attribute:- Alle Standardattribute
Commit-Zähler
Wird erhöht, wenn Git-Commits über Claude Code erstellt werden. Attribute:- Alle Standardattribute
Kosten-Zähler
Wird nach jeder API-Anfrage erhöht. Attribute:- Alle Standardattribute
model: Modellkennung (z. B. “claude-sonnet-4-5-20250929”)
Token-Zähler
Wird nach jeder API-Anfrage erhöht. Attribute:- Alle Standardattribute
type: ("input","output","cacheRead","cacheCreation")model: Modellkennung (z. B. “claude-sonnet-4-5-20250929”)
Code Edit Tool Decision-Zähler
Wird erhöht, wenn der Benutzer die Verwendung von Edit-, Write- oder NotebookEdit-Werkzeugen akzeptiert oder ablehnt. Attribute:- Alle Standardattribute
tool: Werkzeugname ("Edit","Write","NotebookEdit")decision: Benutzerentscheidung ("accept","reject")language: Programmiersprache der bearbeiteten Datei (z. B."TypeScript","Python","JavaScript","Markdown"). Gibt"unknown"für nicht erkannte Dateierweiterungen zurück.
Aktive Zeit-Zähler
Verfolgt die tatsächliche Zeit, die aktiv Claude Code verwendet wird (nicht Leerlaufzeit). Diese Metrik wird während Benutzerinteraktionen wie dem Eingeben von Prompts oder dem Empfangen von Antworten erhöht. Attribute:- Alle Standardattribute
Ereignisse
Claude Code exportiert die folgenden Ereignisse über OpenTelemetry Logs/Events (wennOTEL_LOGS_EXPORTER konfiguriert ist):
Benutzer-Prompt-Ereignis
Protokolliert, wenn ein Benutzer einen Prompt einreicht. Ereignisname:claude_code.user_prompt
Attribute:
- Alle Standardattribute
event.name:"user_prompt"event.timestamp: ISO 8601-Zeitstempelprompt_length: Länge des Promptsprompt: Prompt-Inhalt (standardmäßig redigiert, aktivieren Sie mitOTEL_LOG_USER_PROMPTS=1)
Tool Result-Ereignis
Protokolliert, wenn ein Werkzeug die Ausführung abgeschlossen hat. Ereignisname:claude_code.tool_result
Attribute:
- Alle Standardattribute
event.name:"tool_result"event.timestamp: ISO 8601-Zeitstempeltool_name: Name des Werkzeugssuccess:"true"oder"false"duration_ms: Ausführungszeit in Millisekundenerror: Fehlermeldung (falls fehlgeschlagen)decision: Entweder"accept"oder"reject"source: Entscheidungsquelle -"config","user_permanent","user_temporary","user_abort"oder"user_reject"tool_parameters: JSON-String mit werkzeugspezifischen Parametern (falls verfügbar)- Für Bash-Werkzeug: enthält
bash_command,full_command,timeout,description,sandbox
- Für Bash-Werkzeug: enthält
API Request-Ereignis
Protokolliert für jede API-Anfrage an Claude. Ereignisname:claude_code.api_request
Attribute:
- Alle Standardattribute
event.name:"api_request"event.timestamp: ISO 8601-Zeitstempelmodel: Verwendetes Modell (z. B. “claude-sonnet-4-5-20250929”)cost_usd: Geschätzte Kosten in USDduration_ms: Anfragedauer in Millisekundeninput_tokens: Anzahl der Eingabe-Tokenoutput_tokens: Anzahl der Ausgabe-Tokencache_read_tokens: Anzahl der aus dem Cache gelesenen Tokencache_creation_tokens: Anzahl der für die Cache-Erstellung verwendeten Token
API Error-Ereignis
Protokolliert, wenn eine API-Anfrage an Claude fehlschlägt. Ereignisname:claude_code.api_error
Attribute:
- Alle Standardattribute
event.name:"api_error"event.timestamp: ISO 8601-Zeitstempelmodel: Verwendetes Modell (z. B. “claude-sonnet-4-5-20250929”)error: Fehlermeldungstatus_code: HTTP-Statuscode (falls zutreffend)duration_ms: Anfragedauer in Millisekundenattempt: Versuchsnummer (für wiederholte Anfragen)
Tool Decision-Ereignis
Protokolliert, wenn eine Werkzeugberechtigungsentscheidung getroffen wird (akzeptieren/ablehnen). Ereignisname:claude_code.tool_decision
Attribute:
- Alle Standardattribute
event.name:"tool_decision"event.timestamp: ISO 8601-Zeitstempeltool_name: Name des Werkzeugs (z. B. “Read”, “Edit”, “Write”, “NotebookEdit” usw.)decision: Entweder"accept"oder"reject"source: Entscheidungsquelle -"config","user_permanent","user_temporary","user_abort"oder"user_reject"
Interpretation von Metriken- und Ereignisdaten
Die von Claude Code exportierten Metriken bieten wertvolle Einblicke in Nutzungsmuster und Produktivität. Hier sind einige häufige Visualisierungen und Analysen, die Sie erstellen können:Nutzungsüberwachung
| Metrik | Analysemöglichkeit |
|---|---|
claude_code.token.usage | Aufschlüsselung nach type (input/output), Benutzer, Team oder Modell |
claude_code.session.count | Verfolgen Sie Adoption und Engagement im Laufe der Zeit |
claude_code.lines_of_code.count | Messen Sie Produktivität durch Verfolgung von Code-Hinzufügungen/Entfernungen |
claude_code.commit.count & claude_code.pull_request.count | Verstehen Sie die Auswirkungen auf Entwicklungs-Workflows |
Kostenüberwachung
Die Metrikclaude_code.cost.usage hilft bei:
- Verfolgung von Nutzungstrends über Teams oder Einzelpersonen
- Identifikation von Sitzungen mit hoher Nutzung zur Optimierung
Kostenmetriken sind Näherungswerte. Für offizielle Abrechnungsdaten konsultieren Sie Ihren API-Anbieter (Claude Console, AWS Bedrock oder Google Cloud Vertex).
Warnungen und Segmentierung
Häufige Warnungen zu berücksichtigen:- Kostensteigerungen
- Ungewöhnlicher Token-Verbrauch
- Hohes Sitzungsvolumen von bestimmten Benutzern
user.account_uuid, organization.id, session.id, model und app.version segmentiert werden.
Ereignisanalyse
Die Ereignisdaten bieten detaillierte Einblicke in Claude Code-Interaktionen: Werkzeugnutzungsmuster: Analysieren Sie Tool Result-Ereignisse, um zu identifizieren:- Am häufigsten verwendete Werkzeuge
- Erfolgsquoten von Werkzeugen
- Durchschnittliche Werkzeugausführungszeiten
- Fehlermuster nach Werkzeugtyp
Backend-Überlegungen
Ihre Wahl der Metriken- und Logs-Backends bestimmt die Arten von Analysen, die Sie durchführen können:Für Metriken:
- Zeitreihendatenbanken (z. B. Prometheus): Ratenberechnungen, aggregierte Metriken
- Spaltenorientierte Speicher (z. B. ClickHouse): Komplexe Abfragen, eindeutige Benutzeranalyse
- Vollständige Observability-Plattformen (z. B. Honeycomb, Datadog): Erweiterte Abfragen, Visualisierung, Warnungen
Für Ereignisse/Logs:
- Log-Aggregationssysteme (z. B. Elasticsearch, Loki): Volltextsuche, Log-Analyse
- Spaltenorientierte Speicher (z. B. ClickHouse): Strukturierte Ereignisanalyse
- Vollständige Observability-Plattformen (z. B. Honeycomb, Datadog): Korrelation zwischen Metriken und Ereignissen
Service-Informationen
Alle Metriken und Ereignisse werden mit den folgenden Ressourcenattributen exportiert:service.name:claude-codeservice.version: Aktuelle Claude Code-Versionos.type: Betriebssystemtyp (z. B.linux,darwin,windows)os.version: Betriebssystem-Versionstringhost.arch: Host-Architektur (z. B.amd64,arm64)wsl.version: WSL-Versionsnummer (nur vorhanden, wenn auf Windows Subsystem for Linux ausgeführt)- Meter-Name:
com.anthropic.claude_code
ROI-Messung-Ressourcen
Für einen umfassenden Leitfaden zur Messung der Kapitalrendite für Claude Code, einschließlich Telemetrie-Einrichtung, Kostenanalyse, Produktivitätsmetriken und automatisierter Berichterstellung, siehe den Claude Code ROI Measurement Guide. Dieses Repository bietet einsatzbereite Docker Compose-Konfigurationen, Prometheus- und OpenTelemetry-Setups sowie Vorlagen zur Generierung von Produktivitätsberichten, die in Tools wie Linear integriert sind.Sicherheits-/Datenschutzüberlegungen
- Telemetrie ist opt-in und erfordert explizite Konfiguration
- Vertrauliche Informationen wie API-Schlüssel oder Dateiinhalte sind niemals in Metriken oder Ereignissen enthalten
- Benutzer-Prompt-Inhalte werden standardmäßig redigiert - nur die Prompt-Länge wird aufgezeichnet. Um Benutzer-Prompt-Protokollierung zu aktivieren, setzen Sie
OTEL_LOG_USER_PROMPTS=1