Zum Inhalt springen

Dokumentation durchsuchen

Tippe, um alle Seiten der Dokumentation zu durchsuchen.

Dokumentationsmenü
Erklärung + AnleitungZielgruppe · Entwickler & Betreiber

Observability

Traces, Metriken und Logs für jede Agenteninteraktion – über OpenTelemetry

Diese Seite wurde maschinell aus dem Englischen übersetzt. Bei Abweichungen gilt das Original.Original auf Englisch lesen

Warum Observability integriert ist

Agenten lassen sich durch das Lesen von Logs nur schwer debuggen: Das interessante Verhalten steckt in verschachtelten LLM-Aufrufen, Tool-Aufrufen und Datenbank-Roundtrips. Agent-Lab behandelt Observability als Framework-Feature, nicht als nachträglichen Zusatz – jeder HTTP-Request, jeder Modellaufruf, jede SQL-Abfrage und jeder ausgehende HTTP-Hop wird zu einem Span, exportiert über den Industriestandard OpenTelemetry (mit den semantischen Konventionen von OpenLLMetry und OpenInference).

Da durchgängig OTLP verwendet wird, funktioniert jedes Collector-kompatible Backend – der Grafana-Stack, Elastic, Langfuse, LangWatch oder das bestehende APM Ihres Unternehmens.

Was instrumentiert wird

Das Setup befindet sich in agent_lab/infrastructure/metrics/tracer.py. Wenn OTEL_EXPORTER_OTLP_ENDPOINT gesetzt ist, wird Folgendes automatisch getraced:

Instrumentor Was Sie sehen
FastAPI Ein Server-Span pro Request, mit Route, Status und Dauer
HTTPX Jeder ausgehende HTTP-Aufruf eines Agenten oder Service
LangChain Jeder LLM-/Chain-Aufruf mit Token-Verbrauch – das Herzstück des Agenten-Tracings
OpenAI Native OpenAI-Aufrufe (OpenInference-Konventionen)
SQLAlchemy Jedes Datenbank-Statement (relational, Vektorsuche, Checkpoints)

Die Ressourcenidentität ergibt sich aus SERVICE_NAME (Standard Agent-Lab) und SERVICE_VERSION (Standard snapshot). Rauschpfade (/status/*, /docs, /openapi.json, Favicons) werden von einem benutzerdefinierten Sampler verworfen.

Aktivierung

Keine Codeänderungen – nur ein Endpoint. Wenn OTEL_EXPORTER_OTLP_ENDPOINT gesetzt ist, fließen Spans über OTLP/HTTP an <endpoint>/v1/traces, /v1/metrics und /v1/logs. Ist die Variable nicht gesetzt, ist das Tracing deaktiviert.

# Point the app at any OTLP/HTTP collector
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 uvicorn agent_lab.main:app --reload

Für die lokale Entwicklung übernehmen zwei vorkonfigurierte Stacks die gesamte Verdrahtung für Sie (aus dem Framework-Repository):

docker compose -f compose-grafana.yml up --build      # collector + Prometheus + Tempo + Loki + Grafana
docker compose -f compose-opensearch.yml up --build   # collector + Data Prepper + OpenSearch + Dashboards

Jeder Stack bringt seine eigene OpenTelemetry-Collector-Konfiguration unter otel/grafana/ bzw. otel/opensearch/ mit – diese Dateien sind die Referenz dafür, wie Traces, Metriken und Logs geroutet werden. Produktionstopologien finden Sie im Deployment-Guide.

Backends für LLM-Observability

Über reines OTel hinaus lässt sich Agent-Lab an spezialisierte LLM-Observability-Plattformen anbinden – über eine TracingBackend-Abstraktion (als DI-Provider in agent_lab/core/container.py verdrahtet). Beide mitgelieferten Backends werden ausschließlich über Umgebungsvariablen aktiviert und deaktivieren sich stillschweigend, wenn ihre Variablen fehlen, sodass die Anwendung immer startet.

Langfuse

Setzen Sie die drei Variablen aus Ihrem Langfuse-Projekt, und jeder Trace wird an den OTLP-Endpoint von Langfuse ({LANGFUSE_HOST}/api/public/otel/v1/traces) gespiegelt – mit langfuse.trace.*-Attributen: Prompts, Completions, Token-Verbrauch und Kosten, bereit für die Simulationsexperimente:

Variable Zweck
LANGFUSE_HOST Basis-URL von Langfuse
LANGFUSE_PUBLIC_KEY pk-lf-…
LANGFUSE_SECRET_KEY sk-lf-…

LangWatch

Variable Zweck
LANGWATCH_ENDPOINT LangWatch-Endpoint
LANGWATCH_API_KEY LangWatch-API-Schlüssel

LangWatch zeichnet pro Nachricht einen langwatch.trace()-Span auf; auf diese Weise protokollieren die Simulations-Suites die Judge-Bewertungen zu den Experimenten.

Referenz-Dashboards

Stack Guide UI
Grafana + Prometheus + Tempo + Loki otel/GRAFANA.md http://localhost:3000
OpenSearch Dashboards otel/OPENSEARCH.md http://localhost:5601

Beide Guides enthalten Demo-Aufzeichnungen der Dashboards im Einsatz.

Erweiterung: Ihr eigenes Backend

TracingBackend ist Teil der öffentlichen API. Leiten Sie davon ab, um Spans an Ihre eigene Plattform weiterzuleiten, und registrieren Sie die Klasse in Ihrem Container:

from agent_lab import Container, TracingBackend


class MyBackend(TracingBackend):
    ...  # export spans wherever your platform needs them


class MyContainer(Container):
    # replace or extend the shipped tracing_backends provider list
    ...

Die Konfigurationsreferenz listet alle Observability-bezogenen Variablen in einer Tabelle auf.