Zum Hauptinhalt springen
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 und Ereignisse über das Logs/Events-Protokoll. Konfigurieren Sie Ihre Metriken- und Logs-Backends, um Ihre Überwachungsanforderungen zu erfüllen.

Schnellstart

Konfigurieren Sie OpenTelemetry mit Umgebungsvariablen:
# 1. Telemetrie aktivieren
export CLAUDE_CODE_ENABLE_TELEMETRY=1

# 2. Exporter auswählen (beide sind optional - konfigurieren Sie nur das, was Sie benötigen)
export OTEL_METRICS_EXPORTER=otlp       # Optionen: otlp, prometheus, console
export OTEL_LOGS_EXPORTER=otlp          # Optionen: otlp, console

# 3. OTLP-Endpunkt konfigurieren (für OTLP-Exporter)
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# 4. Authentifizierung festlegen (falls erforderlich)
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-token"

# 5. Zum Debuggen: Exportintervalle reduzieren
export OTEL_METRIC_EXPORT_INTERVAL=10000  # 10 Sekunden (Standard: 60000ms)
export OTEL_LOGS_EXPORT_INTERVAL=5000     # 5 Sekunden (Standard: 5000ms)

# 6. Claude Code ausführen
claude
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.
Für vollständige Konfigurationsoptionen siehe die OpenTelemetry-Spezifikation.

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:
{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer example-token"
  }
}
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

UmgebungsvariableBeschreibungBeispielwerte
CLAUDE_CODE_ENABLE_TELEMETRYAktiviert die Telemetrieerfassung (erforderlich)1
OTEL_METRICS_EXPORTERMetriken-Exporter-Typ(en), kommagetrenntconsole, otlp, prometheus
OTEL_LOGS_EXPORTERLogs/Events-Exporter-Typ(en), kommagetrenntconsole, otlp
OTEL_EXPORTER_OTLP_PROTOCOLProtokoll für OTLP-Exporter, gilt für alle Signalegrpc, http/json, http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINTOTLP-Collector-Endpunkt für alle Signalehttp://localhost:4317
OTEL_EXPORTER_OTLP_METRICS_PROTOCOLProtokoll für Metriken, überschreibt allgemeine Einstellunggrpc, http/json, http/protobuf
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTOTLP-Metriken-Endpunkt, überschreibt allgemeine Einstellunghttp://localhost:4318/v1/metrics
OTEL_EXPORTER_OTLP_LOGS_PROTOCOLProtokoll für Logs, überschreibt allgemeine Einstellunggrpc, http/json, http/protobuf
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTLP-Logs-Endpunkt, überschreibt allgemeine Einstellunghttp://localhost:4318/v1/logs
OTEL_EXPORTER_OTLP_HEADERSAuthentifizierungsheader für OTLPAuthorization=Bearer token
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYClient-Schlüssel für mTLS-AuthentifizierungPfad zur Client-Schlüsseldatei
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATEClient-Zertifikat für mTLS-AuthentifizierungPfad zur Client-Zertifikatsdatei
OTEL_METRIC_EXPORT_INTERVALExportintervall in Millisekunden (Standard: 60000)5000, 60000
OTEL_LOGS_EXPORT_INTERVALLogs-Exportintervall in Millisekunden (Standard: 5000)1000, 10000
OTEL_LOG_USER_PROMPTSAktiviert die Protokollierung von Benutzer-Prompt-Inhalten (Standard: deaktiviert)1 zum Aktivieren
OTEL_LOG_TOOL_DETAILSAktiviert die Protokollierung von Tool-Eingabeargumenten, MCP-Server-/Tool-Namen und Skill-Namen in Tool-Ereignissen (Standard: deaktiviert)1 zum Aktivieren
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCEMetriken-Temporalitätspräferenz (Standard: delta). Setzen Sie auf cumulative, wenn Ihr Backend kumulative Temporalität erwartetdelta, cumulative
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MSIntervall zum Aktualisieren dynamischer Header (Standard: 1740000ms / 29 Minuten)900000

Metriken-Kardinalitätskontrolle

Die folgenden Umgebungsvariablen steuern, welche Attribute in Metriken enthalten sind, um die Kardinalität zu verwalten:
UmgebungsvariableBeschreibungStandardwertBeispiel zum Deaktivieren
OTEL_METRICS_INCLUDE_SESSION_IDAttribut session.id in Metriken einschließentruefalse
OTEL_METRICS_INCLUDE_VERSIONAttribut app.version in Metriken einschließenfalsetrue
OTEL_METRICS_INCLUDE_ACCOUNT_UUIDAttribute user.account_uuid und user.account_id in Metriken einschließentruefalse
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.

Dynamische Header

Für Unternehmensumgebungen, die eine dynamische Authentifizierung erfordern, können Sie ein Skript konfigurieren, um Header dynamisch zu generieren:

Einstellungskonfiguration

Fügen Sie zu Ihrer .claude/settings.json hinzu:
{
  "otelHeadersHelper": "/bin/generate_opentelemetry_headers.sh"
}

Skriptanforderungen

Das Skript muss gültiges JSON mit Zeichenketten-Schlüssel-Wert-Paaren ausgeben, die HTTP-Header darstellen:
#!/bin/bash
# Beispiel: Mehrere Header
echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

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 Umgebungsvariable CLAUDE_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 Umgebungsvariable OTEL_RESOURCE_ATTRIBUTES verwenden:
# Benutzerdefinierte Attribute für Team-Identifikation hinzufügen
export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"
Diese benutzerdefinierten Attribute werden in alle Metriken und Ereignisse einbezogen, sodass Sie:
  • 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 OTEL_RESOURCE_ATTRIBUTES verwendet kommagetrennte Schlüssel=Wert-Paare mit strikten Formatierungsanforderungen:
  • Keine Leerzeichen erlaubt: Werte dürfen keine Leerzeichen enthalten. Zum Beispiel ist user.organizationName=My Company ungü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
Beispiele:
# ❌ Ungültig - enthält Leerzeichen
export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

# ✅ Gültig - verwenden Sie stattdessen Unterstriche oder camelCase
export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"
export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

# ✅ Gültig - prozentcodieren Sie Sonderzeichen, falls erforderlich
export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"
Hinweis: Das Einschließen von Werten in Anführungszeichen entkommt keine Leerzeichen. Zum Beispiel führt org.name="My Company" zum Literalwert "My Company" (mit Anführungszeichen enthalten), nicht zu My Company.

Beispielkonfigurationen

Setzen Sie diese Umgebungsvariablen vor dem Ausführen von claude. Jeder Block zeigt eine vollständige Konfiguration für einen anderen Exporter oder ein anderes Bereitstellungsszenario:
# Console-Debugging (1-Sekunden-Intervalle)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
export OTEL_METRIC_EXPORT_INTERVAL=1000

# OTLP/gRPC
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Prometheus
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=prometheus

# Mehrere Exporter
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console,otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

# Unterschiedliche Endpunkte/Backends für Metriken und Logs
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318
export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

# Nur Metriken (keine Ereignisse/Logs)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Nur Ereignisse/Logs (keine Metriken)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

Verfügbare Metriken und Ereignisse

Standardattribute

Alle Metriken und Ereignisse teilen diese Standardattribute:
AttributBeschreibungGesteuert durch
session.idEindeutige SitzungskennungOTEL_METRICS_INCLUDE_SESSION_ID (Standard: true)
app.versionAktuelle Claude Code-VersionOTEL_METRICS_INCLUDE_VERSION (Standard: false)
organization.idOrganisations-UUID (wenn authentifiziert)Immer enthalten, wenn verfügbar
user.account_uuidKonto-UUID (wenn authentifiziert)OTEL_METRICS_INCLUDE_ACCOUNT_UUID (Standard: true)
user.account_idKonto-ID im getaggten Format, das Anthropic-Admin-APIs entspricht (wenn authentifiziert), wie user_01BWBeN28...OTEL_METRICS_INCLUDE_ACCOUNT_UUID (Standard: true)
user.idAnonyme Geräte-/Installationskennung, generiert pro Claude Code-InstallationImmer enthalten
user.emailE-Mail-Adresse des Benutzers (wenn über OAuth authentifiziert)Immer enthalten, wenn verfügbar
terminal.typeTerminal-Typ, wie iTerm.app, vscode, cursor oder tmuxImmer enthalten, wenn erkannt
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-Array

Metriken

Claude Code exportiert die folgenden Metriken:
MetriknameBeschreibungEinheit
claude_code.session.countAnzahl der gestarteten CLI-Sitzungencount
claude_code.lines_of_code.countAnzahl der geänderten Codezeilencount
claude_code.pull_request.countAnzahl der erstellten Pull Requestscount
claude_code.commit.countAnzahl der erstellten Git-Commitscount
claude_code.cost.usageKosten der Claude Code-SitzungUSD
claude_code.token.usageAnzahl der verwendeten Tokentokens
claude_code.code_edit_tool.decisionAnzahl der Entscheidungen zur Berechtigung des Code-Bearbeitungstoolscount
claude_code.active_time.totalGesamte aktive Zeit in Sekundens

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:

Codezeilen-Zähler

Wird erhöht, wenn Code hinzugefügt oder entfernt wird. Attribute:

Pull-Request-Zähler

Wird erhöht, wenn Pull Requests über Claude Code erstellt werden. Attribute:

Commit-Zähler

Wird erhöht, wenn Git-Commits über Claude Code erstellt werden. Attribute:

Kostenzähler

Wird nach jeder API-Anfrage erhöht. Attribute:

Token-Zähler

Wird nach jeder API-Anfrage erhöht. Attribute:
  • Alle Standardattribute
  • type: ("input", "output", "cacheRead", "cacheCreation")
  • model: Modellkennung (zum Beispiel “claude-sonnet-4-6”)

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 - "config", "hook", "user_permanent", "user_temporary", "user_abort" oder "user_reject"
  • language: Programmiersprache der bearbeiteten Datei, wie "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 (wenn OTEL_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 Attribut prompt.id ermöglicht es Ihnen, alle diese Ereignisse an den einzelnen Prompt zu binden, der sie ausgelöst hat.
AttributBeschreibung
prompt.idUUID v4-Kennung, die alle Ereignisse verknüpft, die während der Verarbeitung eines einzelnen Benutzer-Prompts erzeugt werden
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-Zeitstempel
  • event.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung
  • prompt_length: Länge des Prompts
  • prompt: Prompt-Inhalt (standardmäßig geschwärzt, aktivieren Sie mit OTEL_LOG_USER_PROMPTS=1)

Tool-Ergebnis-Ereignis

Protokolliert, wenn ein Tool die Ausführung abgeschlossen hat. Ereignisname: claude_code.tool_result Attribute:
  • Alle Standardattribute
  • event.name: "tool_result"
  • event.timestamp: ISO 8601-Zeitstempel
  • event.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung
  • tool_name: Name des Tools
  • success: "true" oder "false"
  • duration_ms: Ausführungszeit in Millisekunden
  • error: Fehlermeldung (falls fehlgeschlagen)
  • decision_type: Entweder "accept" oder "reject"
  • decision_source: Entscheidungsquelle - "config", "hook", "user_permanent", "user_temporary", "user_abort" oder "user_reject"
  • tool_result_size_bytes: Größe des Tool-Ergebnisses in Bytes
  • mcp_server_scope: MCP-Server-Scope-Kennung (für MCP-Tools)
  • tool_parameters: JSON-Zeichenkette mit Tool-spezifischen Parametern (falls verfügbar)
    • Für Bash-Tool: enthält bash_command, full_command, timeout, description, dangerouslyDisableSandbox und git_commit_id (der Commit-SHA, wenn ein git commit-Befehl erfolgreich ist)
    • Für MCP-Tools (wenn OTEL_LOG_TOOL_DETAILS=1): enthält mcp_server_name, mcp_tool_name
    • Für Skill-Tool (wenn OTEL_LOG_TOOL_DETAILS=1): enthält skill_name
  • tool_input (wenn OTEL_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-Zeitstempel
  • event.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung
  • model: Verwendetes Modell (zum Beispiel “claude-sonnet-4-6”)
  • cost_usd: Geschätzte Kosten in USD
  • duration_ms: Anfragedauer in Millisekunden
  • input_tokens: Anzahl der Eingabe-Token
  • output_tokens: Anzahl der Ausgabe-Token
  • cache_read_tokens: Anzahl der aus dem Cache gelesenen Token
  • cache_creation_tokens: Anzahl der Token, die für die Cache-Erstellung verwendet werden
  • speed: "fast" oder "normal", was angibt, ob der schnelle Modus aktiv war

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-Zeitstempel
  • event.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung
  • model: Verwendetes Modell (zum Beispiel “claude-sonnet-4-6”)
  • error: Fehlermeldung
  • status_code: HTTP-Statuscode als Zeichenkette oder "undefined" für Nicht-HTTP-Fehler
  • duration_ms: Anfragedauer in Millisekunden
  • attempt: Versuchsnummer (für wiederholte Anfragen)
  • speed: "fast" oder "normal", was angibt, ob der schnelle Modus aktiv war

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-Zeitstempel
  • event.sequence: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung
  • tool_name: Name des Tools (zum Beispiel “Read”, “Edit”, “Write”, “NotebookEdit”)
  • decision: Entweder "accept" oder "reject"
  • source: Entscheidungsquelle - "config", "hook", "user_permanent", "user_temporary", "user_abort" oder "user_reject"

Interpretation von Metriken- und Ereignisdaten

Die exportierten Metriken und Ereignisse unterstützen eine Reihe von Analysen:

Nutzungsüberwachung

MetrikAnalysemöglichkeit
claude_code.token.usageAufschlüsselung nach type (input/output), Benutzer, Team oder Modell
claude_code.session.countVerfolgung der Akzeptanz und des Engagements im Laufe der Zeit
claude_code.lines_of_code.countMessung der Produktivität durch Verfolgung von Code-Hinzufügungen/Entfernungen
claude_code.commit.count & claude_code.pull_request.countVerständnis der Auswirkungen auf Entwicklungs-Workflows

Kostenüberwachung

Die Metrik claude_code.cost.usage hilft bei:
  • Verfolgung von Nutzungstrends über Teams oder Einzelpersonen hinweg
  • 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, die Sie in Betracht ziehen sollten:
  • Kostensteigerungen
  • Ungewöhnlicher Token-Verbrauch
  • Hohes Sitzungsvolumen von bestimmten Benutzern
Alle Metriken können nach user.account_uuid, user.account_id, organization.id, session.id, model und app.version segmentiert werden.

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
Leistungsüberwachung: Verfolgen Sie API-Anfrage-Dauern und Tool-Ausführungszeiten, um Leistungsengpässe zu identifizieren.

Backend-Überlegungen

Ihre Wahl des Metriken- und Logs-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): 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): Korrelation zwischen Metriken und Ereignissen
Für Organisationen, die Daily/Weekly/Monthly Active User (DAU/WAU/MAU) Metriken benötigen, sollten Sie Backends in Betracht ziehen, die effiziente Abfragen eindeutiger Werte unterstützen.

Dienstinformationen

Alle Metriken und Ereignisse werden mit den folgenden Ressourcenattributen exportiert:
  • service.name: claude-code
  • service.version: Aktuelle Claude Code-Version
  • os.type: Betriebssystemtyp (zum Beispiel linux, darwin, windows)
  • os.version: Betriebssystem-Versionsnummer
  • host.arch: Host-Architektur (zum Beispiel 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-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

  • Telemetrie ist opt-in und erfordert explizite Konfiguration
  • Rohe Dateiinhalte und Code-Snippets sind nicht in Metriken oder Ereignissen enthalten. Tool-Ausführungsereignisse enthalten Bash-Befehle und Dateipfade im Feld tool_parameters, das möglicherweise vertrauliche Werte enthält. Wenn Ihre Befehle möglicherweise Geheimnisse enthalten, konfigurieren Sie Ihr Telemetrie-Backend, um tool_parameters zu filtern oder zu schwärzen
  • Wenn über OAuth authentifiziert, ist user.email in 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
  • Tool-Eingabeargumente werden standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie OTEL_LOG_TOOL_DETAILS=1. Wenn aktiviert, enthalten tool_result-Ereignisse MCP-Server-/Tool-Namen und Skill-Namen sowie ein tool_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 begrenzt, aber die Argumente können immer noch vertrauliche Werte enthalten. Konfigurieren Sie Ihr Telemetrie-Backend, um tool_input nach Bedarf zu filtern oder zu schwärzen

Überwachung von Claude Code auf Amazon Bedrock

Für detaillierte Anleitung zur Überwachung der Claude Code-Nutzung für Amazon Bedrock siehe Claude Code Monitoring Implementation (Bedrock).