OpenTelemetry - Tracing von LLMs mit jedem Observability Tool
OpenTelemetry ist ein CNCF-Standard für Observability. Es lässt sich mit jedem Observability-Tool verbinden, wie z.B. Jaeger, Zipkin, Datadog, New Relic, Traceloop und anderen.
Erste Schritte
Installieren Sie das OpenTelemetry SDK
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp
Setzen Sie die Umgebungsvariablen (verschiedene Anbieter können unterschiedliche Variablen erfordern)
- Protokollierung an Traceloop Cloud
- Protokollierung an OTEL HTTP Collector
- Protokollierung an OTEL GRPC Collector
- Protokollierung an Laminar
OTEL_EXPORTER="otlp_http"
OTEL_ENDPOINT="https://api.traceloop.com"
OTEL_HEADERS="Authorization=Bearer%20<your-api-key>"
OTEL_EXPORTER_OTLP_ENDPOINT="http://0.0.0.0:4318"
OTEL_EXPORTER_OTLP_PROTOCOL=http/json
OTEL_EXPORTER_OTLP_HEADERS="api-key=key,other-config-value=value"
OTEL_EXPORTER_OTLP_ENDPOINT="http://0.0.0.0:4318"
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_HEADERS="api-key=key,other-config-value=value"
OTEL_EXPORTER="otlp_grpc"
OTEL_ENDPOINT="https://api.lmnr.ai:8443"
OTEL_HEADERS="authorization=Bearer <project-api-key>"
Verwenden Sie nur 1 Zeile Code, um Ihre LLM-Antworten über alle Anbieter hinweg mit OpenTelemetry sofort zu protokollieren
litellm.callbacks = ["otel"]
Redigierung von Nachrichten und Antwortinhalten aus der OpenTelemetry-Protokollierung
Redigierung von Nachrichten und Antworten aus der gesamten OpenTelemetry-Protokollierung
Setzen Sie litellm.turn_off_message_logging=True. Dies verhindert, dass Nachrichten und Antworten an OpenTelemetry protokolliert werden, aber Metadaten der Anfrage werden weiterhin protokolliert.
Redigierung von Nachrichten und Antworten aus der spezifischen OpenTelemetry-Protokollierung
In den Metadaten, die typischerweise für Textvervollständigungs- oder Embedding-Aufrufe übergeben werden, können Sie spezifische Schlüssel festlegen, um Nachrichten und Antworten für diesen Aufruf zu maskieren.
Wenn Sie mask_input auf True setzen, wird die Eingabe für diesen Aufruf nicht protokolliert.
Wenn Sie mask_output auf True setzen, wird die Ausgabe für diesen Aufruf nicht protokolliert.
Beachten Sie, dass, wenn Sie eine bestehende Trace fortsetzen und update_trace_keys so einstellen, dass es entweder input oder output enthält, und Sie die entsprechende Einstellung mask_input oder mask_output vornehmen, dann wird diese Trace ihre bestehende Eingabe und/oder Ausgabe durch eine redigierte Nachricht ersetzen.
Support
Bei Fragen oder Problemen mit der Integration können Sie sich an die OpenLLMetry-Maintainer auf Slack oder per E-Mail wenden.
Fehlerbehebung
Nachverfolgung von Benutzer-/Schlüssel-/Organisations-/Team-Informationen des LiteLLM-Proxys bei fehlgeschlagenen Anfragen
LiteLLM gibt die user_api_key_metadata aus
- Schlüssel-Hash
- Schlüssel-Alias
- Organisations-ID
- Benutzer-ID
- Team-ID
für erfolgreiche + fehlgeschlagene Anfragen
klicken Sie unter litellm_request in der Trace