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.
Administratorkonfiguration
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. Weitere Informationen zur Anwendung von Einstellungen finden Sie unter Einstellungspriorität. Beispiel für verwaltete Einstellungskonfiguration: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.
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.
Konfigurationsdetails
Allgemeine Konfigurationsvariablen
mTLS-Authentifizierung
Wie Sie Client-Zertifikate für den OTLP-Exporter konfigurieren, hängt vom OTLP-Protokoll ab, das für dieses Signal verwendet wird, das überOTEL_EXPORTER_OTLP_PROTOCOL oder die Pro-Signal-Überschreibung gesetzt wird. Die gleiche Konfiguration gilt für Metriken, Logs und Traces.
Für
grpc liest das OpenTelemetry SDK die Standard-OTLP-Variablen direkt, daher funktionieren bestehende Konfigurationen, die die Pro-Signal-Metriken-Variablen setzen, weiterhin.
Metriken-Kardinalitätskontrolle
Die folgenden Umgebungsvariablen steuern, welche Attribute in Metriken enthalten sind, um die Kardinalität zu verwalten:
Diese Variablen helfen, die Kardinalität von Metriken zu kontrollieren, was sich auf die Speicheranforderungen und die Abfrageleistung in Ihrem Metriken-Backend auswirkt. Eine niedrigere Kardinalität bedeutet in der Regel bessere Leistung und niedrigere Speicherkosten, aber weniger granulare Daten für die Analyse.
Traces (Beta)
Verteiltes Tracing exportiert Spans, die jeden Benutzer-Prompt mit den API-Anfragen und Tool-Ausführungen verknüpfen, die er auslöst, sodass Sie eine vollständige Anfrage als einzelnen Trace in Ihrem Tracing-Backend anzeigen können. Tracing ist standardmäßig deaktiviert. Um es zu aktivieren, setzen Sie sowohlCLAUDE_CODE_ENABLE_TELEMETRY=1 als auch CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1, und setzen Sie dann OTEL_TRACES_EXPORTER, um auszuwählen, wohin Spans gesendet werden. Traces verwenden die allgemeine OTLP-Konfiguration für Endpunkt, Protokoll, Header und mTLS erneut.
Spans schwärzen Benutzer-Prompt-Text, Tool-Eingabedetails und Tool-Inhalte standardmäßig. Setzen Sie
OTEL_LOG_USER_PROMPTS=1, OTEL_LOG_TOOL_DETAILS=1 und OTEL_LOG_TOOL_CONTENT=1, um sie einzubeziehen.
Wenn Tracing aktiv ist, erben Bash- und PowerShell-Subprozesse automatisch eine TRACEPARENT-Umgebungsvariable, die den W3C-Trace-Kontext des aktiven Tool-Ausführungs-Spans enthält. Dies ermöglicht jedem Subprozess, der TRACEPARENT liest, seine eigenen Spans unter demselben Trace zu verschachteln, was eine End-to-End-verteilte Tracing durch Skripte und Befehle ermöglicht, die Claude ausführt.
Wenn Tracing aktiv ist und Claude Code direkt mit der Anthropic API verbunden ist, trägt jede Modellanfrage einen W3C traceparent Header, der auf den Kontext des claude_code.llm_request Spans gesetzt ist, und der traceresponse Header der API wird als Span-Link aufgezeichnet. Zusammen verbinden diese Claude Code’s clientseitige Spans mit dem serverseitigen Trace durch jeden konformen Vermittler. Der Header wird nicht an Drittanbieter gesendet.
Standardmäßig wird der traceparent Header bei Model- und HTTP MCP-Anfragen nur gesendet, wenn ANTHROPIC_BASE_URL nicht gesetzt ist oder auf die Anthropic API verweist, da einige Proxys unbekannte Header ablehnen. Die Subprozess-TRACEPARENT-Variable wird durch denselben Schalter aus Konsistenzgründen gesteuert. Wenn Sie Claude Code durch einen benutzerdefinierten ANTHROPIC_BASE_URL Proxy ausführen und Trace-Kontext propagiert werden soll, setzen Sie CLAUDE_CODE_PROPAGATE_TRACEPARENT=1.
In Agent SDK und nicht-interaktiven Sitzungen, die mit -p gestartet werden, liest Claude Code auch TRACEPARENT und TRACESTATE aus seiner eigenen Umgebung, wenn jeder Interaktions-Span gestartet wird. Dies ermöglicht einem Embedding-Prozess, seinen aktiven W3C-Trace-Kontext in den Subprozess zu übergeben, sodass Claude Code’s Spans als untergeordnete Elemente des Aufrufers verteilter Trace erscheinen. Interaktive Sitzungen ignorieren eingehende TRACEPARENT, um zu vermeiden, dass versehentlich Umgebungswerte aus CI oder Container-Umgebungen geerbt werden.
Span-Hierarchie
Jeder Benutzer-Prompt startet einenclaude_code.interaction Root-Span. API-Aufrufe, Tool-Aufrufe und Hook-Ausführungen werden als untergeordnete Elemente aufgezeichnet. Tool-Spans haben zwei untergeordnete Spans: einen für die Zeit, die auf eine Berechtigungsentscheidung gewartet wird, und einen für die Ausführung selbst. Wenn das Agent-Tool oder das veraltete Task-Tool einen Subagenten erzeugt, werden die API- und Tool-Spans des Subagenten unter dem claude_code.tool-Span des übergeordneten Elements verschachtelt.
claude -p Sitzungen wird claude_code.interaction selbst ein untergeordnetes Element des Aufrufers-Spans, wenn TRACEPARENT in der Umgebung gesetzt ist.
Span-Attribute
Jeder Span trägt die Standardattribute plus einspan.type-Attribut, das seinem Namen entspricht. Die folgenden Tabellen listen die zusätzlichen Attribute auf, die auf jedem Span gesetzt sind. Die Spans llm_request, tool.execution und hook setzen OpenTelemetry-Status ERROR, wenn sie einen Fehler aufzeichnen; die anderen Spans enden immer mit Status UNSET.
claude_code.interaction
claude_code.llm_request
Jeder Wiederholungsversuch wird auch als
gen_ai.request.attempt Span-Ereignis mit attempt und client_request_id Attributen aufgezeichnet.
claude_code.tool
Wenn
OTEL_LOG_TOOL_CONTENT=1, zeichnet dieser Span auch ein tool.output Span-Ereignis auf, dessen Attribute die Tool-Eingabe- und Ausgabetexte enthalten, gekürzt bei 60 KB pro Attribut.
claude_code.tool.blocked_on_user
claude_code.tool.execution
claude_code.hook
Dieser Span wird nur ausgegeben, wenn detailliertes Beta-Tracing aktiv ist, was ENABLE_BETA_TRACING_DETAILED=1 und BETA_TRACING_ENDPOINT zusätzlich zur obigen Trace-Exporter-Konfiguration erfordert. In interaktiven CLI-Sitzungen erfordert dies auch, dass Ihre Organisation für die Funktion auf die Whitelist gesetzt ist. Agent SDK und nicht-interaktive -p Sitzungen sind nicht gated. Es wird nicht ausgegeben, wenn nur CLAUDE_CODE_ENHANCED_TELEMETRY_BETA gesetzt ist.
Zusätzliche inhaltshaltige Attribute wie
new_context, system_prompt_preview, user_system_prompt, tool_input und response.model_output werden nur ausgegeben, wenn detailliertes Beta-Tracing aktiv ist. Sie sind nicht Teil des stabilen Span-Schemas. user_system_prompt erfordert zusätzlich OTEL_LOG_USER_PROMPTS=1. Es trägt nur den System-Prompt-Text, den Sie über die systemPrompt SDK-Option oder die Flags --system-prompt und --append-system-prompt bereitstellen, gekürzt bei 60 KB, und wird einmal pro Sitzung statt pro Anfrage ausgegeben.Dynamische Header
Für Unternehmensumgebungen, die eine dynamische Authentifizierung erfordern, können Sie ein Skript konfigurieren, um Header dynamisch zu generieren. Dynamische Header gelten nur für die Protokollehttp/protobuf und http/json. Der grpc Exporter verwendet nur den statischen OTEL_EXPORTER_OTLP_HEADERS Wert.
Einstellungskonfiguration
Fügen Sie zu Ihrer.claude/settings.json hinzu:
Skriptanforderungen
Das Skript muss gültiges JSON mit Zeichenketten-Schlüssel-Wert-Paaren ausgeben, die HTTP-Header darstellen:/statusAusgabe- Das Debug-Log, wenn Sie mit
--debugausführen oder nach dem Ausführen von/debugin der Sitzung - stderr, in nicht-interaktiven Sitzungen, die mit
-pgestartet werden
Aktualisierungsverhalten
Das Headers-Helper-Skript wird beim Start und danach regelmäßig ausgeführt, um Token-Aktualisierung zu unterstützen. Standardmäßig wird das Skript alle 29 Minuten ausgeführt. Passen Sie das Intervall mit der UmgebungsvariableCLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS an.
Unterstützung für Multi-Team-Organisationen
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
user.id oder session.id: Wenn ein Schlüssel kollidiert, behält Claude Code den integrierten Wert.
Jeder benutzerdefinierte Schlüssel wird zu einem Label auf jeder Metrik-Serie, daher erhöhen hochkardinalige Werte die Speicherkosten in Ihrem Metriken-Backend. Um benutzerdefinierte Attribute nur im Ressourcenblock zu senden und sie von Datenpunkt-Labels auszulassen, setzen Sie OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false. Siehe Metriken-Kardinalitätskontrolle.
Beispielkonfigurationen
Setzen Sie diese Umgebungsvariablen vor dem Ausführen vonclaude. Jeder Block zeigt eine vollständige Konfiguration für einen anderen Exporter oder ein anderes Bereitstellungsszenario:
Verfügbare Metriken und Ereignisse
Standardattribute
Alle Metriken und Ereignisse teilen diese Standardattribute:
Wenn Claude Code bei einem Claude-Apps-Gateway angemeldet ist, versieht die CLI Exporte mit der authentifizierten Identität aus der Gateway-Sitzung:
user.id ist das IdP-Subjekt statt einer anonymen Installationskennung, user.email ist die angemeldete E-Mail, und user.groups enthält die IdP-Gruppenmitgliedschaft als kommagetrennte Zeichenkette. Jeder Export trägt auch identity.source: gateway-oidc. Die Gateway-Identität wird zuletzt angewendet, daher werden user.* und identity.* Schlüssel, die über OTEL_RESOURCE_ATTRIBUTES gesetzt werden, bei Gateway-Sitzungen ignoriert.
Ereignisse enthalten zusätzlich die folgenden Attribute. Diese werden niemals an Metriken angehängt, da sie zu unbegrenzter Kardinalität führen würden:
prompt.id: UUID, die einen Benutzer-Prompt mit allen nachfolgenden Ereignissen bis zum nächsten Prompt korreliert. Siehe Ereigniskorrelationsattribute.workspace.host_paths: Host-Workspace-Verzeichnisse, die in der Desktop-App ausgewählt wurden, als String-Arrayworkflow.run_id: Lauf-Kennung mit dem Präfixwf_auf der API und Tool-Ereignisse, die von Agents ausgegeben werden, die zu einem Workflow Tool-Lauf gehören. Das Filtern von Ereignissen nach einerworkflow.run_idrekonstruiert die API-Anfragen und Tool-Ergebnisse dieses Laufs. Die Kennung umfasst die Agents, die das Workflow-Skript erzeugt, und alle Agents, die diese wiederum erzeugen, z. B. Skill-Aufrufe. Sie entspricht der Lauf-Kennung, die im Workflow-Tool-Ergebnis gemeldet wird. Nicht vorhanden bei allen anderen Ereignissen. Erfordert Claude Code v2.1.202 oder späterworkflow.name: Name des Workflows, dasmeta.namedes Skripts, ausgegeben zusammen mitworkflow.run_id. Integrierte Workflow-Namen erscheinen wörtlich, wenn der Lauf das unmodifizierte integrierte Skript ausführt. Benutzerdefinierte Namen, einschließlich bearbeiteter Kopien integrierter Skripte, werden durchcustomersetzt, es sei denn,OTEL_LOG_TOOL_DETAILS=1ist gesetzt. Erfordert Claude Code v2.1.202 oder später
Metriken
Claude Code exportiert die folgenden Metriken:Metrik-Details
Jede Metrik enthält die oben aufgeführten Standardattribute. Metriken mit zusätzlichen kontextspezifischen Attributen werden nachfolgend vermerkt.Sitzungszähler
Wird zu Beginn jeder Sitzung erhöht. Attribute:- Alle Standardattribute
start_type: Wie die Sitzung gestartet wurde. Einer von"fresh","resume","continue"oder"agents_view". Der Wert"agents_view"identifiziert denclaude agentsDashboard-Prozess, eine von Benutzern gestartete lokale Benutzeroberfläche statt einer Konversationssitzung. Filtern Sie nach diesem Wert, um UI-Prozessstart von Konversationssitzungen in Ihren Dashboards zu trennen.
Codezeilen-Zähler
Wird erhöht, wenn Code hinzugefügt oder entfernt wird. Attribute:- Alle Standardattribute
type: ("added","removed")model: Modellkennung für das Modell, das die Änderung vorgenommen hat (z. B. “claude-sonnet-5”)
Pull-Request-Zähler
Wird erhöht, wenn Claude Code einen Pull Request oder Merge Request über einen Shell-Befehl oder ein MCP-Tool erstellt. Attribute:- Alle Standardattribute
Commit-Zähler
Wird erhöht, wenn Git-Commits über Claude Code erstellt werden. Attribute:- Alle Standardattribute
Kostenzähler
Wird nach jeder API-Anfrage erhöht. Attribute:- Alle Standardattribute
model: Modellkennung (z. B. “claude-sonnet-5”)query_source: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von"main","subagent"oder"auxiliary"speed:"fast", wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhandeneffort: Anstrengungsstufe, die auf die Anfrage angewendet wird:"low","medium","high","xhigh"oder"max". Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.agent.name: Subagent-Typ, der die Anfrage gestellt hat. Integrierte Agent-Namen und Agents aus offiziellen Marketplace-Plugins werden wörtlich angezeigt. Andere benutzerdefinierte Agent-Namen werden durch"custom"ersetzt. Nicht vorhanden, wenn die Anfrage nicht von einem benannten Subagent-Typ gestellt wurde.skill.name: Skill, der für die Anfrage aktiv ist, gesetzt durch das Skill-Tool, einen/Befehl oder geerbt von einem erzeugten Subagent. Integrierte, gebündelte, benutzerdefinierte und offizielle Marketplace-Plugin-Skill-Namen werden wörtlich angezeigt. Drittanbieter-Plugin-Skill-Namen werden durch"third-party"ersetzt. Nicht vorhanden, wenn kein Skill aktiv ist.plugin.name: Besitzendes Plugin, wenn der aktive Skill oder Subagent von einem Plugin bereitgestellt wird. Offizielle Marketplace-Plugin-Namen werden wörtlich angezeigt. Drittanbieter-Plugin-Namen werden durch"third-party"ersetzt. Nicht vorhanden, wenn weder der Skill noch der Subagent ein besitzendes Plugin hat.marketplace.name: Marketplace, von dem das besitzende Plugin installiert wurde. Nur für offizielle Marketplace-Plugins ausgegeben. Andernfalls nicht vorhanden.mcp_server.name: MCP-Server, dessen Tool in der Runde ausgeführt wurde, die diese Anfrage erzeugt hat. Integrierte, claude.ai-proxied und offizielle Registry-Server-Namen werden wörtlich angezeigt. Benutzerkonfigurierte Server-Namen werden durch"custom"ersetzt. Nicht vorhanden, wenn kein MCP-Tool ausgeführt wurde.mcp_tool.name: MCP-Tool, das in der Runde ausgeführt wurde, die diese Anfrage erzeugt hat, mit der gleichen Schwärzung wiemcp_server.name. Nicht vorhanden, wenn kein MCP-Tool ausgeführt wurde.
Token-Zähler
Wird nach jeder API-Anfrage erhöht. Attribute:- Alle Standardattribute
type: ("input","output","cacheRead","cacheCreation")model: Modellkennung (z. B. “claude-sonnet-5”)query_source: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von"main","subagent"oder"auxiliary"speed:"fast", wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhandeneffort: Anstrengungsstufe, die auf die Anfrage angewendet wird. Siehe Kostenzähler für Details.agent.name,skill.name,plugin.name,marketplace.name,mcp_server.name,mcp_tool.name: Skill-, Plugin-, Agent- und MCP-Zuordnung für die Anfrage. Siehe Kostenzähler für Definitionen und Schwärzungsverhalten.
Code-Edit-Tool-Entscheidungszähler
Wird erhöht, wenn der Benutzer die Verwendung des Edit-, Write- oder NotebookEdit-Tools akzeptiert oder ablehnt. Attribute:- Alle Standardattribute
tool_name: Tool-Name ("Edit","Write","NotebookEdit")decision: Benutzerentscheidung ("accept","reject")source: Entscheidungsquelle. Einer von"config","hook","user_permanent","user_temporary","user_abort"oder"user_reject". Siehe das Tool-Entscheidungs-Ereignis für die Bedeutung jedes Wertes.language: Programmiersprache der bearbeiteten Datei, z. B."TypeScript","Python","JavaScript"oder"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, ohne Leerlaufzeit. Diese Metrik wird während Benutzerinteraktionen (Eingabe, Lesen von Antworten) und während CLI-Verarbeitung (Tool-Ausführung, KI-Antwortgenerierung) erhöht. Attribute:- Alle Standardattribute
type:"user"für Tastaturinteraktionen,"cli"für Tool-Ausführung und KI-Antworten
Ereignisse
Claude Code exportiert die folgenden Ereignisse über OpenTelemetry Logs/Events (wennOTEL_LOGS_EXPORTER konfiguriert ist):
Ereigniskorrelationsattribute
Wenn ein Benutzer einen Prompt einreicht, kann Claude Code mehrere API-Aufrufe tätigen und mehrere Tools ausführen. Das Attributprompt.id ermöglicht es Ihnen, alle diese Ereignisse an den einzelnen Prompt zu binden, der sie ausgelöst hat.
Um alle Aktivitäten zu verfolgen, die durch einen einzelnen Prompt ausgelöst werden, filtern Sie Ihre Ereignisse nach einem bestimmten
prompt.id-Wert. Dies gibt das user_prompt-Ereignis, alle api_request-Ereignisse und alle tool_result-Ereignisse zurück, die während der Verarbeitung dieses Prompts aufgetreten sind.
prompt.id ist absichtlich aus Metriken ausgeschlossen, da jeder Prompt eine eindeutige ID generiert, was zu einer ständig wachsenden Anzahl von Zeitreihen führen würde. Verwenden Sie es nur für Ereignisanalyse und Audit-Trails.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-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungprompt_length: Länge des Promptsprompt: Prompt-Inhalt. Standardmäßig geschwärzt. Setzen SieOTEL_LOG_USER_PROMPTS=1, um ihn einzubeziehencommand_name: Befehlsname, wenn der Prompt einen aufruft. Integrierte und gebündelte Befehlsnamen wiecompactoderdebugwerden wie geschrieben ausgegeben; Aliase wieresetwerden wie eingegeben ausgegeben, nicht der kanonische Name. Benutzerdefinierte, Plugin- und MCP-Befehlsnamen werden zucustomodermcpzusammengefasst, es sei denn,OTEL_LOG_TOOL_DETAILS=1ist gesetztcommand_source: Ursprung des Befehls, wenn vorhanden:builtin,customodermcp. Von Plugins bereitgestellte Befehle werden alscustomgemeldet
Assistent-Antwort-Ereignis
Protokolliert nach jeder API-Anfrage, die Textinhalte vom Modell zurückgibt. Nur die Textblöcke der Antwort sind enthalten; Thinking-Blöcke und Tool-Use-Blöcke sind ausgeschlossen. Erfordert Claude Code v2.1.193 oder später. Ereignisname:claude_code.assistant_response
Attribute:
- Alle Standardattribute
event.name:"assistant_response"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungresponse_length: Länge des Antworttexts in Zeichenresponse: Antworttext, gekürzt bei 60 KB. Standardmäßig auf<REDACTED>geschwärzt. Setzen SieOTEL_LOG_ASSISTANT_RESPONSES=1, um ihn einzubeziehen. WennOTEL_LOG_ASSISTANT_RESPONSESnicht gesetzt ist, steuertOTEL_LOG_USER_PROMPTSes stattdessen, also setzen SieOTEL_LOG_ASSISTANT_RESPONSES=0, um Antworten geschwärzt zu halten, während Prompt-Protokollierung aktiv istmodel: Modellkennung (z. B. “claude-sonnet-5”)request_id: Anthropic API-Anfrage-ID aus dem Response-Headerrequest-id. Nur vorhanden, wenn die API eine zurückgibtquery_source: Subsystem, das die Anfrage gestellt hat, z. B."repl_main_thread","compact"oder ein Subagent-Name
Tool-Ergebnis-Ereignis
Protokolliert, wenn ein Tool die Ausführung abgeschlossen hat. Nicht ausgegeben, wenn der Tool-Aufruf abgelehnt wurde; siehe das Tool-Entscheidungs-Ereignis für Ablehnungen. Ereignisname:claude_code.tool_result
Attribute:
- Alle Standardattribute
event.name:"tool_result"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungtool_name: Name des Toolstool_use_id: Eindeutige Kennung für diese Tool-Invokation. Entspricht dertool_use_id, die an Hooks übergeben wird, und ermöglicht die Korrelation zwischen OTel-Ereignissen und Hook-erfassten Daten.success:"true"oder"false"duration_ms: Ausführungszeit in Millisekundenerror_type: Fehler-Kategoriezeichenkette, wenn das Tool fehlgeschlagen ist, z. B."Error:ENOENT"oder"ShellError"error(wennOTEL_LOG_TOOL_DETAILS=1): Vollständige Fehlermeldung, wenn das Tool fehlgeschlagen istdecision_type: Immer"accept", da dieses Ereignis nur ausgegeben wird, nachdem das Tool ausgeführt wurde. Abgelehnte Aufrufe erzeugen kein Tool-Ergebnisdecision_source: Entscheidungsquelle. Einer von"config","hook","user_permanent"oder"user_temporary". Siehe das Tool-Entscheidungs-Ereignis für die Bedeutung jedes Wertes. Die nur-Ablehnung-Quellen"user_abort"und"user_reject"erscheinen niemals auf diesem Ereignis.tool_input_size_bytes: Größe der JSON-serialisierten Tool-Eingabe in Bytestool_result_size_bytes: Größe des Tool-Ergebnisses in Bytesmcp_server_scope: MCP-Server-Scope-Kennung (für MCP-Tools)tool_parameters(wennOTEL_LOG_TOOL_DETAILS=1): JSON-Zeichenkette mit Tool-spezifischen Parametern:- Für Bash-Tool: enthält
bash_command,full_command,timeout,description,dangerouslyDisableSandboxundgit_commit_id(der Commit-SHA, wenn eingit commit-Befehl erfolgreich ist) - Für WorkspaceBash-Tool: enthält
bash_command,full_command,timeout - Für MCP-Tools: enthält
mcp_server_name,mcp_tool_name - Für Skill-Tool: enthält
skill_name - Für Agent-Tool oder Legacy-Task-Tool: enthält
subagent_type
- Für Bash-Tool: enthält
tool_input(wennOTEL_LOG_TOOL_DETAILS=1): JSON-serialisierte Tool-Argumente. Einzelne Werte über 512 Zeichen werden gekürzt, und die gesamte Nutzlast ist auf etwa 4 K Zeichen begrenzt. Gilt für alle Tools einschließlich MCP-Tools.
API-Anfrage-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-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmodel: Verwendetes Modell (z. B. “claude-sonnet-5”)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 Token, die für die Cache-Erstellung verwendet werdenrequest_id: Anthropic API-Anfrage-ID aus dem Response-Headerrequest-id, z. B."req_011...". Nur vorhanden, wenn die API eine zurückgibt.speed:"fast"oder"normal", was angibt, ob der schnelle Modus aktiv warquery_source: Subsystem, das die Anfrage gestellt hat, z. B."repl_main_thread","compact"oder ein Subagent-Nameeffort: Anstrengungsstufe, die auf die Anfrage angewendet wird:"low","medium","high","xhigh"oder"max". Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.agent.name,skill.name,plugin.name,marketplace.name,mcp_server.name,mcp_tool.name: Skill-, Plugin-, Agent- und MCP-Zuordnung für die Anfrage. Siehe Kostenzähler für Definitionen und Schwärzungsverhalten.
API-Fehler-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-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmodel: Verwendetes Modell (z. B. “claude-sonnet-5”)error: Fehlermeldungstatus_code: HTTP-Statuscode als Zahl. Nicht vorhanden für Nicht-HTTP-Fehler wie Verbindungsfehler.duration_ms: Anfragedauer in Millisekundenattempt: Gesamtzahl der Versuche, einschließlich der ursprünglichen Anfrage (1bedeutet, dass keine Wiederholungen aufgetreten sind)request_id: Anthropic API-Anfrage-ID aus dem Response-Headerrequest-id, z. B."req_011...". Nur vorhanden, wenn die API eine zurückgibt.speed:"fast"oder"normal", was angibt, ob der schnelle Modus aktiv warquery_source: Subsystem, das die Anfrage gestellt hat, z. B."repl_main_thread","compact"oder ein Subagent-Nameeffort: Anstrengungsstufe, die auf die Anfrage angewendet wird. Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.agent.name,skill.name,plugin.name,marketplace.name,mcp_server.name,mcp_tool.name: Skill-, Plugin-, Agent- und MCP-Zuordnung für die Anfrage. Siehe Kostenzähler für Definitionen und Schwärzungsverhalten.
API-Verweigerung-Ereignis
Protokolliert, wenn eine API-Anfragestop_reason: "refusal" zurückgibt. Verweigerungen kommen in einem erfolgreichen Response-Stream an, nicht als HTTP-Fehler, daher wird das api_error-Ereignis nicht für sie ausgelöst. Dieses Ereignis ermöglicht es Ihnen, die Verweigerungshäufigkeit zu verfolgen und Verweigerungen nach den gleichen Attributen wie api_request und api_error zu gruppieren.
Ereignisname: claude_code.api_refusal
Attribute:
- Alle Standardattribute
event.name:"api_refusal"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmodel: Modellkennung aus der Anfragerequest_id: Anthropic API-Anfrage-ID aus dem Response-Headerrequest-id, z. B."req_011...". Nur vorhanden, wenn die API eine zurückgibt.query_source: Subsystem, das die Anfrage gestellt hat, z. B."repl_main_thread","compact"oder ein Subagent-Name. Sieheapi_requestfür Definitionen.speed: Entweder"fast", wenn Schneller Modus aktiv ist, oder"normal"attempt: Wiederholungsversuch-Nummer. Der erste Versuch ist1.effort: Anstrengungsstufe, die auf die Anfrage angewendet wird. Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.server_fallback_hop:true, wenn das Server-seitige Modell-Fallback der API diesen Verweigerung bereits auf einem anderen Modell erneut versucht hat, sodass der Benutzer diese bestimmte Verweigerung nicht sah.false, wenn die Anfrage in einer Verweigerung endete. Eine einzelne Runde kann sowohl eintrueHop-Ereignis als auch ein späteresfalseFinales Ereignis ausgeben, wenn das Fallback-Modell auch verweigert.has_category:true, wenn die API-Antwort einestop_details.categoryvon"cyber","bio","frontier_llm"oder"reasoning_extraction"trug.false, wenn die Antwort keine Kategorie oder einen Wert außerhalb dieses Satzes trug. Nicht vorhanden, wennserver_fallback_hoptrueist, da Hop-Blöcke keinestop_detailstragen.has_explanation:true, wenn die API-Antwort einestop_details.explanationtrug, andernfallsfalse. Nicht vorhanden, wennserver_fallback_hoptrueist.category: Derstop_details.category-Wert aus der API-Antwort. Einer von"cyber","bio","frontier_llm"oder"reasoning_extraction". Nur vorhanden, wennOTEL_LOG_TOOL_DETAILS=1gesetzt ist undhas_categorytrueist.agent.name,skill.name,plugin.name,marketplace.name,mcp_server.name,mcp_tool.name: Skill-, Plugin-, Agent- und MCP-Zuordnung für die Anfrage. Siehe Kostenzähler für Definitionen und Schwärzungsverhalten.
API-Anfrage-Text-Ereignis
Protokolliert für jeden API-Anfrage-Versuch, wennOTEL_LOG_RAW_API_BODIES gesetzt ist. Ein Ereignis wird pro Versuch ausgegeben, daher erzeugen Wiederholungen mit angepassten Parametern jeweils ihr eigenes Ereignis.
Ereignisname: claude_code.api_request_body
Attribute:
- Alle Standardattribute
event.name:"api_request_body"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungbody: JSON-serialisierte Messages API-Anfrageparameter (Systemprompt, Nachrichten, Tools usw.), gekürzt bei 60 KB. Extended-Thinking-Inhalte in vorherigen Assistent-Durchgängen werden geschwärzt. Nur im Inline-Modus ausgegeben (OTEL_LOG_RAW_API_BODIES=1).body_ref: Absoluter Pfad zu einer<dir>/<uuid>.request.jsonDatei, die den ungekürzte Text enthält. Nur im Datei-Modus ausgegeben (OTEL_LOG_RAW_API_BODIES=file:<dir>).body_length: Ungekürzte Text-Länge. UTF-8-Bytes, wennOTEL_LOG_RAW_API_BODIES=file:<dir>, oder UTF-16-Code-Einheiten, wenn=1body_truncated:"true", wenn Inline-Kürzung aufgetreten ist. Nicht vorhanden im Datei-Modus und wenn keine Kürzung aufgetreten ist.model: Modellkennung aus den Anfrageparameternquery_source: Subsystem, das die Anfrage gestellt hat (z. B."compact")
API-Antwort-Text-Ereignis
Protokolliert für jede erfolgreiche API-Antwort, wennOTEL_LOG_RAW_API_BODIES gesetzt ist.
Ereignisname: claude_code.api_response_body
Attribute:
- Alle Standardattribute
event.name:"api_response_body"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungbody: JSON-serialisierte Messages API-Antwort (id, Inhaltsblöcke, Nutzung, Stoppgrund), gekürzt bei 60 KB. Extended-Thinking-Inhalte werden geschwärzt. Nur im Inline-Modus ausgegeben (OTEL_LOG_RAW_API_BODIES=1).body_ref: Absoluter Pfad zu einer<dir>/<request_id>.response.jsonDatei, die den ungekürzte Text enthält. Nur im Datei-Modus ausgegeben (OTEL_LOG_RAW_API_BODIES=file:<dir>).body_length: Ungekürzte Text-Länge. UTF-8-Bytes, wennOTEL_LOG_RAW_API_BODIES=file:<dir>, oder UTF-16-Code-Einheiten, wenn=1body_truncated:"true", wenn Inline-Kürzung aufgetreten ist. Nicht vorhanden im Datei-Modus und wenn keine Kürzung aufgetreten ist.model: Modellkennungquery_source: Subsystem, das die Anfrage gestellt hatrequest_id: Anthropic API-Anfrage-ID aus dem Response-Headerrequest-id, z. B."req_011...". Nur vorhanden, wenn die API eine zurückgibt.
Tool-Entscheidungs-Ereignis
Protokolliert, wenn eine Tool-Berechtigungsentscheidung getroffen wird (akzeptieren/ablehnen). Ereignisname:claude_code.tool_decision
Attribute:
- Alle Standardattribute
event.name:"tool_decision"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungtool_name: Name des Tools (z. B. “Read”, “Edit”, “Write”, “NotebookEdit”)tool_use_id: Eindeutige Kennung für diese Tool-Invokation. Entspricht dertool_use_id, die an Hooks übergeben wird, und ermöglicht die Korrelation zwischen OTel-Ereignissen und Hook-erfassten Daten.decision: Entweder"accept"oder"reject"source: Entscheidungsquelle:"config": Automatisch entschieden, ohne Aufforderung, basierend auf Projekteinstellungen, Zulassungsregeln in den persönlichen Einstellungen des Benutzers, verwalteter Unternehmensrichtlinie,--allowedToolsoder--disallowedToolsFlags, dem aktiven Berechtigungsmodus, einer sitzungsbegrenzten Zulassung aus einem früheren Prompt in der gleichen interaktiven CLI-Sitzung oder weil das Tool inhärent sicher ist. Das Ereignis gibt nicht an, welche dieser Quellen übereinstimmte."hook": EinPreToolUseoderPermissionRequestHook hat die Entscheidung zurückgegeben."user_permanent": Wird ausgegeben, wenn der Benutzer “Ja, und nicht mehr fragen für …” bei einer Berechtigungsaufforderung wählte, was eine Zulassungsregel in seinen persönlichen Einstellungen speichert. In der interaktiven CLI wird dies nur für diese Wahl selbst ausgegeben; spätere Aufrufe, die der gespeicherten Regel entsprechen, geben stattdessen"config"aus. In Agent SDK oder nicht-interaktiven-pSitzungen geben sowohl die ursprüngliche Wahl als auch spätere Regelübereinstimmungen"user_permanent"aus. Wird als Akzeptanz behandelt."user_temporary": Wird ausgegeben, wenn der Benutzer “Ja” bei einer Berechtigungsaufforderung wählte, oder eine der Optionen ”… während dieser Sitzung” bei einer Dateibearbeitungs- oder Leseanforderung wählte. In der interaktiven CLI wird dies nur für die Wahl selbst ausgegeben; spätere Aufrufe, die durch diese sitzungsbegrenzte Zulassung zulässig sind, geben stattdessen"config"aus. In Agent SDK oder nicht-interaktiven-pSitzungen geben sowohl die Wahl als auch spätere Übereinstimmungen"user_temporary"aus. Wird als Akzeptanz behandelt."user_abort": Wird ausgegeben, wenn der Benutzer die Berechtigungsaufforderung geschlossen hat, ohne zu antworten. Wird als Ablehnung behandelt."user_reject": Wird ausgegeben, wenn der Benutzer “Nein” wählte, wenn aufgefordert. In der interaktiven CLI wird dies nur für diese Wahl selbst ausgegeben; Aufrufe, die einer Ablehnungsregel in den persönlichen Einstellungen des Benutzers entsprechen, geben stattdessen"config"aus. In Agent SDK oder nicht-interaktiven-pSitzungen geben Aufrufe, die einer Ablehnungsregel in persönlichen Einstellungen entsprechen,"user_reject"aus. Wird als Ablehnung behandelt.
tool_parameters(wennOTEL_LOG_TOOL_DETAILS=1): JSON-Zeichenkette mit Tool-spezifischen Parametern. Gleiche Form wie das Tool-Ergebnis-Ereignis, minus Post-Ausführungs-Felder wiegit_commit_id. Werte können sich vontool_resultfür einen akzeptierten Aufruf unterscheiden, wenn die Berechtigungsentscheidung die Tool-Eingabe überupdatedInputumschreibt. Verwenden Sie dieses Attribut, um zu sehen, welcher Befehl abgelehnt wurde, wenndecision"reject"ist.- Für Bash-Tool: enthält
bash_command,full_command,timeout,description,dangerouslyDisableSandbox - Für WorkspaceBash-Tool: enthält
bash_command,full_command,timeout - Für MCP-Tools: enthält
mcp_server_name,mcp_tool_name - Für Skill-Tool: enthält
skill_name - Für Agent-Tool oder Legacy-Task-Tool: enthält
subagent_type
- Für Bash-Tool: enthält
Berechtigungsmodus-Änderungs-Ereignis
Protokolliert, wenn sich der Berechtigungsmodus ändert, z. B. durch Shift+Tab-Zyklus, Beendigung des Plan-Modus oder eine Auto-Modus-Gate-Prüfung. Ereignisname:claude_code.permission_mode_changed
Attribute:
- Alle Standardattribute
event.name:"permission_mode_changed"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungfrom_mode: Der vorherige Berechtigungsmodus, z. B."default","plan","acceptEdits","auto"oder"bypassPermissions"to_mode: Der neue Berechtigungsmodustrigger: Was die Änderung verursacht hat. Einer von"shift_tab","exit_plan_mode","auto_gate_denied"oder"auto_opt_in". Nicht vorhanden, wenn der Übergang vom SDK oder Bridge stammt
Auth-Ereignis
Protokolliert, wenn/login oder /logout abgeschlossen ist.
Ereignisname: claude_code.auth
Attribute:
- Alle Standardattribute
event.name:"auth"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungaction:"login"oder"logout"success:"true"oder"false"auth_method: Authentifizierungsmethode, z. B."oauth"error_category: Kategorische Fehlerart, wenn die Aktion fehlgeschlagen ist. Die rohe Fehlermeldung ist nie enthaltenstatus_code: HTTP-Statuscode als Zeichenkette, wenn die Aktion mit einem HTTP-Fehler fehlgeschlagen ist
MCP-Server-Verbindungs-Ereignis
Protokolliert, wenn ein MCP-Server verbunden wird, getrennt wird oder keine Verbindung herstellen kann. Ereignisname:claude_code.mcp_server_connection
Attribute:
- Alle Standardattribute
event.name:"mcp_server_connection"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungstatus:"connected","failed"oder"disconnected"transport_type: Server-Transport, z. B."stdio","sse"oder"http"server_scope: Bereich, in dem der Server konfiguriert ist, z. B."user","project"oder"local"duration_ms: Verbindungsversuch-Dauer in Millisekundenerror_code: Fehlercode, wenn die Verbindung fehlgeschlagen istis_plugin:true, wenn der Server von einem Plugin bereitgestellt wird,falseandernfallsplugin_id_hash(wennis_plugintrueist): Stabiler Hash des Plugin-Namens und des Marketplace, zum Gruppieren von Ereignissen nach Plugin, ohne den Namen offenzulegenplugin.name(wennis_plugintrueist): Name des Plugins, das den Server bereitstellt. Für Drittanbieter-Plugins ist dies die Zeichenkette"third-party", es sei denn,OTEL_LOG_TOOL_DETAILS=1; dies schützt Drittanbieter-Plugin-Namen davor, standardmäßig in Protokollen zu erscheinen. Plugins aus offiziellen Anthropic-Quellen werden immer anhand des Namens identifiziert. Die Attributeplugin_id_hashundplugin.namefließen zu Ihrem eigenen Monitoring-Backend und werden nicht an Anthropic gesendetserver_name(wennOTEL_LOG_TOOL_DETAILS=1): Konfigurierter Server-Nameerror(wennOTEL_LOG_TOOL_DETAILS=1): Vollständige Fehlermeldung, wenn die Verbindung fehlgeschlagen ist
Interner Fehler-Ereignis
Protokolliert, wenn Claude Code einen unerwarteten internen Fehler abfängt. Nur der Fehlerklassenname und ein errno-ähnlicher Code werden aufgezeichnet. Die Fehlermeldung und Stack-Trace sind nie enthalten. Dieses Ereignis wird nicht ausgegeben, wenn gegen Amazon Bedrock, Google Cloud’s Agent Platform oder Microsoft Foundry ausgeführt wird, oder wennDISABLE_ERROR_REPORTING gesetzt ist.
Ereignisname: claude_code.internal_error
Attribute:
- Alle Standardattribute
event.name:"internal_error"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungerror_name: Fehlerklassenname, z. B."TypeError"oder"SyntaxError"error_code: Node.js errno-Code wie"ENOENT", wenn auf dem Fehler vorhanden
Plugin-Installiert-Ereignis
Protokolliert, wenn ein Plugin die Installation abgeschlossen hat, sowohl vomclaude plugin install CLI-Befehl als auch von der interaktiven /plugin UI.
Ereignisname: claude_code.plugin_installed
Attribute:
- Alle Standardattribute
event.name:"plugin_installed"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmarketplace.is_official:"true", wenn der Marketplace ein offizieller Anthropic-Marketplace ist,"false"andernfallsinstall.trigger:"cli"oder"ui"plugin.name: Name des installierten Plugins. Für Drittanbieter-Marketplaces ist dies nur enthalten, wennOTEL_LOG_TOOL_DETAILS=1plugin.version: Plugin-Version, wenn in der Marketplace-Eintrag deklariert. Für Drittanbieter-Marketplaces ist dies nur enthalten, wennOTEL_LOG_TOOL_DETAILS=1marketplace.name: Marketplace, von dem das Plugin installiert wurde. Für Drittanbieter-Marketplaces ist dies nur enthalten, wennOTEL_LOG_TOOL_DETAILS=1
Plugin-Geladen-Ereignis
Protokolliert einmal pro aktiviertem Plugin beim Sitzungsstart. Verwenden Sie dieses Ereignis, um zu inventarisieren, welche Plugins über Ihre gesamte Flotte hinweg aktiv sind, als Ergänzung zuplugin_installed, das die Installationsaktion selbst aufzeichnet.
Ereignisname: claude_code.plugin_loaded
Attribute:
- Alle Standardattribute
event.name:"plugin_loaded"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungplugin.name: Name des Plugins. Für Plugins außerhalb des offiziellen Marketplace und des integrierten Bundles ist der Wert"third-party", es sei denn,OTEL_LOG_TOOL_DETAILS=1marketplace.name: Marketplace, von dem das Plugin installiert wurde, wenn bekannt. Auf"third-party"unter der gleichen Bedingung wieplugin.namegeschwärztplugin.version: Version aus dem Plugin-Manifest. Nur enthalten, wenn der Name nicht geschwärzt ist und das Manifest eine Version deklariertplugin.scope: Herkunftskategorie für das Plugin:"official","org","user-local"oder"default-bundle"enabled_via: Wie das Plugin aktiviert wurde:"default-enable","org-policy","seed-mount"oder"user-install"plugin_id_hash: Deterministische Hash des Plugin-Namens und des Marketplace, nur an Ihren konfigurierten Exporter gesendet. Ermöglicht es Ihnen, zu zählen, wie viele unterschiedliche Drittanbieter-Plugins über Ihre gesamte Flotte hinweg geladen sind, ohne ihre Namen aufzuzeichnenhas_hooks: Ob das Plugin Hooks beiträgthas_mcp: Ob das Plugin MCP-Server beiträgthost_owned_mcp:true, wenn der SDK-Host die MCP-Verbindungen dieses Plugins verwaltet und Claude Code das Lesen der MCP-Server-Konfiguration des Plugins übersprungen hat,falseandernfalls. Erfordert Claude Code v2.1.172 oder späterskill_path_count: Anzahl der Skill-Verzeichnisse, die das Plugin deklariertcommand_path_count: Anzahl der Befehlsverzeichnisse, die das Plugin deklariertagent_path_count: Anzahl der Agent-Verzeichnisse, die das Plugin deklariertsafe_mode:"true", wenn die Sitzung mit--safe-modegestartet wurde,"false"andernfalls. Im sicheren Modus meldet dieses Ereignis nur die konfigurierte Inventur; die Befehle, Skills, Hooks und MCP-Server des Plugins werden nicht geladen. Erfordert Claude Code v2.1.169 oder später
Skill-Aktiviert-Ereignis
Protokolliert, wenn ein Skill aufgerufen wird, ob Claude ihn über das Skill-Tool aufruft oder Sie ihn als/ Befehl ausführen.
Ereignisname: claude_code.skill_activated
Attribute:
- Alle Standardattribute
event.name:"skill_activated"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungskill.name: Name des Skills. Für benutzerdefinierte und Drittanbieter-Plugin-Skills ist der Wert der Platzhalter"custom_skill", es sei denn,OTEL_LOG_TOOL_DETAILS=1invocation_trigger: Wie der Skill ausgelöst wurde ("user-slash","claude-proactive"oder"nested-skill")skill.source: Wo der Skill geladen wurde (z. B."bundled","userSettings","projectSettings","plugin")skill.kind:"workflow", wenn der Skill ein Workflow-Skill ist. Andernfalls nicht vorhandenplugin.name(wennOTEL_LOG_TOOL_DETAILS=1oder das Plugin ist von einem offiziellen Marketplace): Name des besitzenden Plugins, wenn der Skill von einem Plugin bereitgestellt wirdmarketplace.name(wennOTEL_LOG_TOOL_DETAILS=1oder das Plugin ist von einem offiziellen Marketplace): Marketplace des besitzenden Plugins, wenn der Skill von einem Plugin bereitgestellt wird
At-Mention-Ereignis
Protokolliert, wenn Claude Code ein@-Mention in einem Prompt auflöst. Nicht jedes Mention gibt ein Ereignis aus: Early-Exit-Pfade wie Berechtigungsverweigerungen, übergroße Dateien, PDF-Referenz-Anhänge und Fehler beim Auflisten von Verzeichnissen werden zurückgegeben, ohne zu protokollieren.
Ereignisname: claude_code.at_mention
Attribute:
- Alle Standardattribute
event.name:"at_mention"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmention_type: Typ des Mentions ("file","directory","agent","mcp_resource")success: Ob das Mention erfolgreich aufgelöst wurde ("true"oder"false")
API-Wiederholungen-Erschöpft-Ereignis
Protokolliert einmal, wenn eine API-Anfrage nach mehr als einem Versuch fehlschlägt. Wird zusammen mit dem letztenapi_error Ereignis ausgegeben.
Ereignisname: claude_code.api_retries_exhausted
Attribute:
- Alle Standardattribute
event.name:"api_retries_exhausted"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungmodel: Verwendetes Modellerror: Letzte Fehlermeldungstatus_code: HTTP-Statuscode als Zahl. Nicht vorhanden für Nicht-HTTP-Fehler.total_attempts: Gesamtzahl der Versuchetotal_retry_duration_ms: Gesamte Wanduhr-Zeit über alle Versuchespeed:"fast"oder"normal"
Hook-Registriert-Ereignis
Protokolliert einmal pro konfiguriertem Hook beim Sitzungsstart. Verwenden Sie dieses Ereignis, um zu inventarisieren, welche Hooks über Ihre gesamte Flotte hinweg aktiv sind, als Ergänzung zu den Pro-Ausführungs-Ereignissenhook_execution_start und hook_execution_complete.
Ereignisname: claude_code.hook_registered
Attribute:
- Alle Standardattribute
event.name:"hook_registered"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzunghook_event: Hook-Ereignistyp, z. B."PreToolUse"oder"PostToolUse"hook_type: Hook-Implementierungstyp:"command","prompt","mcp_tool","http"oder"agent"hook_source: Wo der Hook definiert ist:"userSettings","projectSettings","localSettings","flagSettings","policySettings"oder"pluginHook"safe_mode:"true", wenn die Sitzung mit--safe-modegestartet wurde,"false"andernfalls. Erfordert Claude Code v2.1.169 oder späterhook_matcher(wennOTEL_LOG_TOOL_DETAILS=1): Die Matcher-Zeichenkette aus der Hook-Konfiguration, wenn eine gesetzt istplugin.name(wennhook_source"pluginHook"ist): Name des beitragenden Plugins. Für Plugins außerhalb des offiziellen Marketplace und des integrierten Bundles ist der Wert"third-party", es sei denn,OTEL_LOG_TOOL_DETAILS=1plugin_id_hash(wennhook_source"pluginHook"ist): Deterministische Hash des Plugin-Namens und des Marketplace, nur an Ihren konfigurierten Exporter gesendet. Ermöglicht es Ihnen, unterschiedliche beitragende Plugins zu zählen, ohne ihre Namen aufzuzeichnen
Hook-Ausführungs-Start-Ereignis
Protokolliert, wenn ein oder mehrere Hooks für ein Hook-Ereignis beginnen auszuführen. Ereignisname:claude_code.hook_execution_start
Attribute:
- Alle Standardattribute
event.name:"hook_execution_start"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzunghook_event: Hook-Ereignistyp, z. B."PreToolUse"oder"PostToolUse"hook_name: Vollständiger Hook-Name einschließlich Matcher, z. B."PreToolUse:Write"num_hooks: Anzahl der übereinstimmenden Hook-Befehlemanaged_only:"true", wenn nur verwaltete Richtlinien-Hooks zulässig sindhook_source:"policySettings"oder"merged"safe_mode:"true", wenn die Sitzung mit--safe-modegestartet wurde,"false"andernfalls. Erfordert Claude Code v2.1.169 oder späterhook_definitions: JSON-serialisierte Hook-Konfiguration. Nur enthalten, wenn sowohl detailliertes Beta-Tracing als auchOTEL_LOG_TOOL_DETAILS=1aktiviert sind
Hook-Ausführungs-Abschluss-Ereignis
Protokolliert, wenn alle Hooks für ein Hook-Ereignis abgeschlossen sind. Ereignisname:claude_code.hook_execution_complete
Attribute:
- Alle Standardattribute
event.name:"hook_execution_complete"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzunghook_event: Hook-Ereignistyphook_name: Vollständiger Hook-Name einschließlich Matchernum_hooks: Anzahl der übereinstimmenden Hook-Befehlenum_success: Anzahl, die erfolgreich abgeschlossen wurdenum_blocking: Anzahl, die eine Blockierungsentscheidung zurückgegeben hatnum_non_blocking_error: Anzahl, die ohne Blockierung fehlgeschlagen istnum_cancelled: Anzahl, die vor Abschluss abgebrochen wurdetotal_duration_ms: Wanduhr-Dauer aller übereinstimmenden Hooksmanaged_only:"true", wenn nur verwaltete Richtlinien-Hooks zulässig sindhook_source:"policySettings"oder"merged"safe_mode:"true", wenn die Sitzung mit--safe-modegestartet wurde,"false"andernfalls. Erfordert Claude Code v2.1.169 oder späterhook_definitions: JSON-serialisierte Hook-Konfiguration. Nur enthalten, wenn sowohl detailliertes Beta-Tracing als auchOTEL_LOG_TOOL_DETAILS=1aktiviert sind
Hook-Plugin-Metriken-Ereignis
Protokolliert, wenn ein offizieller Marketplace-Plugin-Hook Pro-Invokations-Metriken ausgibt. Nur Plugins, die von einem offiziellen Anthropic-Marketplace installiert wurden, können diese ausgeben. Drittanbieter-Marketplace-Plugins und benutzerdefinierte Hooks geben nicht zu diesem Ereignis aus. Verwenden Sie dieses Ereignis, um Plugin-Verhalten wie Findungsraten, Kosten und Dauern aus Ihrem eigenen Observability-Stack zu überwachen. Ereignisname:claude_code.hook_plugin_metrics
Attribute:
- Alle Standardattribute
event.name:"hook_plugin_metrics"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungplugin_id: Plugin-Kennung in<name>@<marketplace>Formhook_event: Hook-Ereignistyp, der die Metriken ausgegeben hat- Bis zu 20 Plugin-ausgegebene Metrik-Schlüssel. Namen entsprechen
^[a-z][a-z0-9_]{0,39}$. Werte sind boolescher Wert oder Zahl.
Kompaktierungs-Ereignis
Protokolliert, wenn die Konversationskompaktierung abgeschlossen ist. Ereignisname:claude_code.compaction
Attribute:
- Alle Standardattribute
event.name:"compaction"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungtrigger:"auto"oder"manual"success:"true"oder"false"duration_ms: Kompaktierungs-Dauerpre_tokens: Ungefähre Token-Anzahl vor Kompaktierungpost_tokens: Ungefähre Token-Anzahl nach Kompaktierungerror: Fehlermeldung, wenn Kompaktierung fehlgeschlagen istprecompute_reuse: Nur gesetzt, wenntrigger"manual"ist. Auto-Kompaktierung kann eine Zusammenfassung im Hintergrund vorbereiten, bevor das Kontextfenster voll wird, und dieses Attribut zeichnet auf, ob/compactdiese vorbereitete Zusammenfassung wiederverwendet hat."hit"bedeutet, dass sie wiederverwendet wurde;"miss_custom_instructions","miss_hook"und"miss_not_ready"geben den Grund an, warum stattdessen eine neue Zusammenfassung berechnet wurde. Erfordert Claude Code v2.1.153 oder später
Feedback-Umfrage-Ereignis
Protokolliert, wenn eine Sitzungsqualitäts-Umfrage angezeigt oder beantwortet wird. Siehe Sitzungsqualitäts-Umfragen für das, was die Umfragen erfassen und wie Sie sie steuern. Ereignisname:claude_code.feedback_survey
Attribute:
- Alle Standardattribute
event.name:"feedback_survey"event.timestamp: ISO 8601-Zeitstempelevent.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzungevent_type: Umfrage-Lebenszyklusereignis, z. B."appeared","responded"oder"transcript_prompt_appeared"appearance_id: Eindeutige ID, die die Ereignisse verknüpft, die für eine Umfrage-Instanz ausgegeben werdensurvey_type: Welche Umfrage das Ereignis erzeugt hat."session"ist die Aufforderung “Wie macht sich Claude?” Bewertungresponse: Die Auswahl des Benutzers beirespondedEreignissenenabled_via_override:true, wennCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELgesetzt ist. Wird als boolescher Wert ausgegeben, nicht als Zeichenkette. Vorhanden beisessionUmfrage-Ereignissen. Filtern Sie nach diesem Attribut, um zu bestätigen, dass die Überschreibung über eine Flotte angewendet wird
Interpretation von Metriken- und Ereignisdaten
Die exportierten Metriken und Ereignisse unterstützen eine Reihe von Analysen:Nutzungsüberwachung
Kostenüberwachung
Die Metrikclaude_code.cost.usage hilft bei:
- Verfolgung von Nutzungstrends über Teams oder Einzelpersonen hinweg
- Identifikation von Sitzungen mit hoher Nutzung zur Optimierung
- Zuordnung von Ausgaben zu spezifischen Skills, Plugins oder Subagent-Typen über die Attribute
skill.name,plugin.nameundagent.name
Kostenmetriken sind Näherungswerte. Für offizielle Abrechnungsdaten konsultieren Sie Ihren API-Anbieter (Claude Console, Amazon Bedrock oder Google Cloud’s Agent Platform).
Warnungen und Segmentierung
Häufige Warnungen, die Sie in Betracht ziehen sollten:- Kostensteigerungen
- Ungewöhnlicher Token-Verbrauch
- Hohes Sitzungsvolumen von bestimmten Benutzern
model ist auf claude_code.token.usage, claude_code.cost.usage und ab v2.1.172 auf claude_code.lines_of_code.count verfügbar.
Aufschlüsselungen pro Modell von Commits können nur durch Verknüpfung mit den Token- oder Kostenmetriken auf session.id angenähert werden, da eine Sitzung mehrere Modelle umfassen kann. Filtern Sie die Token- oder Kostenseite auf Zeilen, bei denen query_source "main" ist, damit Hilfs- und Subagent-Anfragen die Commits der Sitzung nicht einem Modell zuordnen, das sie nicht erstellt hat.
Wiederholungserschöpfung erkennen
Claude Code wiederholt fehlgeschlagene API-Anfragen intern und gibt nur nach dem Aufgeben ein einzelnesclaude_code.api_error Ereignis aus, daher ist das Ereignis selbst das Endsignal für diese Anfrage. Zwischenzeitliche Wiederholungsversuche werden nicht als separate Ereignisse protokolliert.
Das Attribut attempt auf dem Ereignis zeichnet auf, wie viele Versuche insgesamt unternommen wurden. CLAUDE_CODE_MAX_RETRIES hat einen Standardwert von 10 und ist auf 15 begrenzt; ab v2.1.199 erhöht CLAUDE_CODE_RETRY_WATCHDOG den Standardwert und entfernt die Obergrenze. Wenn die Anfrage alle Wiederholungen bei einem vorübergehenden Fehler erschöpft, ist attempt um eins höher als dieses effektive Limit: 11 standardmäßig und nie mehr als 16, es sei denn, der Watchdog ist gesetzt. Ein niedrigerer Wert zeigt einen nicht wiederholbaren Fehler wie eine 400 Antwort an.
Um eine Sitzung zu unterscheiden, die sich von einer, die steckengeblieben ist, erholt hat, gruppieren Sie Ereignisse nach session.id und prüfen Sie, ob ein späteres api_request Ereignis nach dem Fehler vorhanden ist.
Ereignisanalyse
Die Ereignisdaten bieten detaillierte Einblicke in Claude Code-Interaktionen: Tool-Nutzungsmuster: Analysieren Sie Tool-Ergebnis-Ereignisse, um zu identifizieren:- Am häufigsten verwendete Tools
- Tool-Erfolgsquoten
- Durchschnittliche Tool-Ausführungszeiten
- Fehlermuster nach Tool-Typ
Audit-Sicherheitsereignisse
OpenTelemetry-Ereignisse sind die Audit-Datenquelle für Claude Code-Aktivität. Jedes Ereignis trägt Identitätsattribute, die Tool-Aufrufe, MCP-Aktivität und Berechtigungsentscheidungen an den Benutzer zurückbinden, der sie ausgelöst hat. Der OTLP-Logs-Exporter kann diese Ereignisse an jede Security Information and Event Management (SIEM)-Plattform mit einem OTLP-Receiver oder an einen OpenTelemetry Collector liefern, der an Ihr SIEM weiterleitet.Attribut-Aktionen an Benutzer
Die Standardattribute auf jedem Ereignis enthalten die Identität des authentifizierten Benutzers:user.email, user.account_uuid, user.account_id und organization.id, wenn mit einem Claude-Konto angemeldet, plus user.id und die pro-Sitzung session.id. user.id ist ein installationsbegrenzter Bezeichner, außer bei Claude apps gateway-Sitzungen, wo es das IdP-Subjekt aus dem vom Gateway ausgegebenen Token ist.
MCP-Tool-Aufrufe, Bash-Befehle und Dateibearbeitungen werden daher dem Entwickler zugeordnet, der die Sitzung gestartet hat. Claude Code handelt nicht unter einem separaten Service-Konto; die Identität, die auf jedem Ereignis aufgezeichnet wird, ist das Claude-Konto des Entwicklers selbst, oder die IdP-Identität des Entwicklers bei einer Claude apps gateway-Sitzung.
Wenn Claude Code sich mit einem direkten API-Schlüssel authentifiziert oder gegen Amazon Bedrock, Google Cloud’s Agent Platform oder Microsoft Foundry, gibt es kein Claude-Konto in der Sitzung und nur user.id und session.id werden gefüllt. In diesen Bereitstellungen fügen Sie die Benutzeridentität selbst mit OTEL_RESOURCE_ATTRIBUTES hinzu, die pro Benutzer über die verwaltete Einstellungsdatei oder einen Launch-Wrapper gesetzt wird. Claude apps gateway-Sitzungen benötigen nichts davon: Die CLI stempelt die IdP-Identität automatisch ab, wie in Standardattribute beschrieben.
Audit MCP-Aktivität
Um MCP-Server-Aktivität mit vollständiger Call-Detail zu erfassen, aktivieren Sie den Logs-Exporter und setzen SieOTEL_LOG_TOOL_DETAILS=1. Jede MCP-Operation erzeugt dann strukturierte Ereignisse, die den Server-Namen, Tool-Namen und Call-Argumente zusammen mit den Standard-Identitätsattributen tragen:
Ohne
OTEL_LOG_TOOL_DETAILS lassen diese Ereignisse die identifizierende Detail fallen:
tool_result: behälttool_nameundmcp_server_scope, lässtmcp_server_name,mcp_tool_nameund Argumente wegtool_decision: behälttool_name, lässttool_parameterswegmcp_server_connection: lässtserver_nameund die Fehlermeldung weg, behält aberis_plugin,plugin_id_hashundplugin.name, wobei Namen von Nicht-Anthropic-Plugins auf das Literal"third-party"redigiert werden, sodass von Plugins bereitgestellte Server ohne detaillierte Protokollierung unterscheidbar bleiben
Sicherheitsfragen zu Ereignissen zuordnen
Beim Erstellen von Erkennungsregeln schlagen Sie das Signal auf, das Sie überwachen möchten, und fragen Sie Ihr Backend nach dem entsprechenden Ereignis und den Attributen ab:
Claude Code gibt nur den rohen Ereignisstrom aus. Anomalieerkennung, Baselining, Korrelation über Sitzungen hinweg und Warnungen sind die Verantwortung Ihres SIEM oder Observability-Backends.
Ereignisse an ein SIEM senden
Zeigen SieOTEL_EXPORTER_OTLP_LOGS_ENDPOINT auf den OTLP-Receiver Ihres SIEM oder auf einen OpenTelemetry Collector, der an die native Ingest-API Ihres SIEM weiterleitet. Das folgende verwaltete Einstellungsbeispiel exportiert nur Ereignisse, mit vollständiger Tool-Detail-Aktivierung für MCP- und Bash-Auditing:
Backend-Überlegungen
Ihre Wahl des Metriken-, Logs- und Traces-Backends bestimmt die Arten von Analysen, die Sie durchführen können:Für Metriken
- Zeitreihendatenbanken (zum Beispiel Prometheus): Ratenberechnungen, aggregierte Metriken
- Spaltenorientierte Speicher (zum Beispiel ClickHouse): Komplexe Abfragen, eindeutige Benutzeranalyse
- Vollständige Observability-Plattformen (zum Beispiel Honeycomb, Datadog, Grafana Cloud): Erweiterte Abfragen, Visualisierung, Warnungen
Für Ereignisse/Logs
- Log-Aggregationssysteme (zum Beispiel Elasticsearch, Loki): Volltextsuche, Log-Analyse
- Spaltenorientierte Speicher (zum Beispiel ClickHouse): Strukturierte Ereignisanalyse
- Vollständige Observability-Plattformen (zum Beispiel Honeycomb, Datadog, Grafana Cloud): Korrelation zwischen Metriken und Ereignissen
Für Traces
Wählen Sie ein Backend, das verteilte Trace-Speicherung und Span-Korrelation unterstützt:- Verteilte Tracing-Systeme (zum Beispiel Jaeger, Zipkin, Grafana Tempo): Span-Visualisierung, Request-Waterfalls, Latenzanalyse
- Vollständige Observability-Plattformen (zum Beispiel Honeycomb, Datadog, Grafana Cloud): Trace-Suche und Korrelation mit Metriken und Logs
Dienstinformationen
Alle Metriken und Ereignisse werden mit den folgenden Ressourcenattributen exportiert:service.name:claude-codeservice.version: Aktuelle Claude Code-Versionos.type: Betriebssystemtyp (zum Beispiellinux,darwin,windows)os.version: Betriebssystem-Versionsnummerhost.arch: Host-Architektur (zum Beispielamd64,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-Setup, Kostenanalyse, Produktivitätsmetriken und automatisierter Berichterstattung, 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.Sicherheit und Datenschutz
- OpenTelemetry-Export zu Ihrem Backend ist opt-in und erfordert explizite Konfiguration. Informationen zu Anthropics separater operativer Telemetrie und wie Sie diese deaktivieren, finden Sie unter Datennutzung
- Rohe Dateiinhalte und Code-Snippets sind nicht in Metriken oder Ereignissen enthalten. Trace-Spans sind ein separater Datenpfad: siehe die Aufzählung
OTEL_LOG_TOOL_CONTENTunten - Wenn über OAuth authentifiziert, ist
user.emailin Telemetrie-Attributen enthalten. Wenn dies ein Problem für Ihre Organisation darstellt, arbeiten Sie mit Ihrem Telemetrie-Backend zusammen, um dieses Feld zu filtern oder zu schwärzen - Benutzer-Prompt-Inhalte werden standardmäßig nicht erfasst. Nur die Prompt-Länge wird aufgezeichnet. Um Benutzer-Prompt-Inhalte einzubeziehen, setzen Sie
OTEL_LOG_USER_PROMPTS=1 - Assistent-Antworttext wird standardmäßig nicht erfasst. Nur die Antwortlänge wird aufgezeichnet. Um Antworttext einzubeziehen, setzen Sie
OTEL_LOG_ASSISTANT_RESPONSES=1. Wie alle OpenTelemetry-Daten von Claude Code wird der Antworttext nur an den OTel-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Wenn diese Variable nicht gesetzt ist, wirdOTEL_LOG_USER_PROMPTSals Fallback verwendet, daher setzen SieOTEL_LOG_ASSISTANT_RESPONSES=0, wenn Sie Prompt-Inhalte ohne Antwortinhalte möchten - Tool-Eingabeargumente und Parameter werden standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie
OTEL_LOG_TOOL_DETAILS=1. Diese Daten werden nur an den OTEL-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Argumente können immer noch vertrauliche Werte enthalten, daher konfigurieren Sie Ihr Telemetrie-Backend, um diese Attribute nach Bedarf zu filtern oder zu schwärzen. Wenn aktiviert:tool_result- undtool_decision-Ereignisse enthalten eintool_parameters-Attribut mit Bash-Befehlen, MCP-Server- und Tool-Namen sowie Skill-Namen. Felder wiefull_commandwerden ungekürzt ausgegebentool_result-Ereignisse enthalten zusätzlich eintool_input-Attribut mit Dateipfaden, URLs, Suchmustern und anderen Argumenten. Einzelne Werte über 512 Zeichen werden gekürzt und die Gesamtmenge ist auf etwa 4 K Zeichen begrenztuser_prompt-Ereignisse enthalten den wörtlichencommand_namefür benutzerdefinierte, Plugin- und MCP-Befehle- Trace-Spans enthalten das gleiche
tool_input-Attribut und eingabebezogene Attribute wiefile_path, mit der gleichen Kürzung wietool_input
- Tool-Eingabe- und Ausgabeinhalte werden in Trace-Spans standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie
OTEL_LOG_TOOL_CONTENT=1. Wenn aktiviert, enthalten Span-Ereignisse vollständige Tool-Eingabe- und Ausgabeinhalte, gekürzt bei 60 KB pro Span. Dies kann rohe Dateiinhalte aus Read-Tool-Ergebnissen und Bash-Befehlsausgabe enthalten. Konfigurieren Sie Ihr Telemetrie-Backend, um diese Attribute nach Bedarf zu filtern oder zu schwärzen - Rohe Anthropic Messages API-Anfrage- und Antwort-Texte werden standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie
OTEL_LOG_RAW_API_BODIES. Mit=1gibt jeder API-Aufrufapi_request_body- undapi_response_body-Log-Ereignisse aus, derenbody-Attribut die JSON-serialisierte Nutzlast ist, gekürzt bei 60 KB. Mit=file:<dir>werden ungekürzte Texte unter diesem Verzeichnis in.request.json- und.response.json-Dateien geschrieben und die Ereignisse tragen einenbody_ref-Pfad statt des Inline-Textes. Versenden Sie das Verzeichnis mit einem Log-Collector oder Sidecar statt über den Telemetrie-Stream. In beiden Modi enthalten Texte die gesamte Konversationshistorie (Systemprompt, jeder vorherige Benutzer- und Assistent-Durchgang, Tool-Ergebnisse), daher impliziert das Aktivieren dies Zustimmung zu allem, was die anderenOTEL_LOG_*-Content-Flags offenbaren würden. Claudes Extended-Thinking-Inhalte werden unabhängig von anderen Einstellungen immer aus diesen Texten geschwärzt