Was macht observability-edot-python-instrument?
Instrumentieren Sie eine Python-Anwendung mit dem Elastic Distribution of OpenTelemetry (EDOT) Python-Agenten für automatisches Tracing, Metriken und Logs. Verwenden Sie dies, wenn Sie eine Python-Anwendung ohne vorhandenen APM-Agenten mit Observability ausstatten möchten.
Voraussetzungen
- Eine Python-Anwendung, die Sie instrumentieren möchten.
- Zugriff auf einen Elastic Observability Endpoint (z.B. für Elastic Cloud oder Elasticsearch Service).
- Ein API Key oder Secret Token zur Authentifizierung.
Installation
Installieren Sie das elastic-opentelemetry Paket mit pip:
pip install elastic-opentelemetry
Konfiguration
Setzen Sie die folgenden Umgebungsvariablen:
OTEL_SERVICE_NAME: Der Name Ihres Service (z.B.my-python-app).OTEL_EXPORTER_OTLP_ENDPOINT: Der OTLP-Endpunkt Ihres Elastic Observability Deployments (z.B.https://my-deployment.apm.us-east-1.aws.cloud.es.io:443).OTEL_EXPORTER_OTLP_HEADERS: Die Authentifizierungsheader, entweder als API Key (Authorization=ApiKey ...) oder als Secret Token (Authorization=Bearer ...).
Beispiel:
export OTEL_SERVICE_NAME="my-python-app"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://my-deployment.apm.us-east-1.aws.cloud.es.io:443"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey dXNlci1hcGkta2V5OnBhc3N3b3Jk"
Instrumentierung ausführen
Verwenden Sie den Befehl opentelemetry-instrument, um Ihre Anwendung zu starten:
opentelemetry-instrument python app.py
Dies wird automatisch gängige Bibliotheken wie Flask, Django, Requests und viele andere instrumentieren.
Überprüfung
- Starten Sie Ihre Anwendung und führen Sie einige Anfragen aus.
- Besuchen Sie Ihr Elastic Observability Deployment und navigieren Sie zu APM > Services.
- Sollte Ihr Service erscheinen. Klicken Sie darauf, um Traces, Metriken und Logs anzuzeigen.
Fehlerbehebung
- Stellen Sie sicher, dass Ihr API Key oder Secret Token gültig ist.
- Überprüfen Sie die Netzwerkkonnektivität zum OTLP-Endpunkt.
- Aktivieren Sie Debug-Logging mit
OTEL_LOG_LEVEL=debug, um detaillierte Ausgaben zu erhalten.