Behandeln von OpenTelemetry-Problemen in Python
In diesem Artikel wird erläutert, wie Sie OpenTelemetry-Probleme in Python behandeln.
Checkliste zur Problembehandlung
Schritt 1: Aktivieren der Diagnoseprotokollierung
Microsoft Azure Monitor Exporter verwendet die Python-Standardprotokollierungsbibliothek für die interne Protokollierung. OpenTelemetry-API- und Azure Monitor Exporter-Protokolle werden dem Schweregrad WARNING
oder ERROR
für unregelmäßige Aktivitäten zugewiesen. Der INFO
Schweregrad wird für reguläre oder erfolgreiche Aktivitäten verwendet.
Standardmäßig legt die Python-Protokollierungsbibliothek den Schweregrad auf fest WARNING
. Daher müssen Sie den Schweregrad ändern, damit Protokolle unter dieser Einstellung angezeigt werden. Der folgende Beispielcode zeigt, wie Protokolle aller Schweregrade an die Konsole und eine Datei ausgegeben werden:
...
import logging
logging.basicConfig(format = "%(asctime)s:%(levelname)s:%(message)s", level = logging.DEBUG)
logger = logging.getLogger(__name__)
file = logging.FileHandler("example.log")
stream = logging.StreamHandler()
logger.addHandler(file)
logger.addHandler(stream)
...
Schritt 2: Testen der Konnektivität zwischen Ihrem Anwendungshost und dem Erfassungsdienst
Application Insights-SDKs und -Agents senden Telemetriedaten, um als REST-Aufrufe an unseren Erfassungsendpunkten erfasst zu werden. Um die Konnektivität von Ihrem Webserver oder Anwendungshostcomputer mit den Erfassungsdienstendpunkten zu testen, verwenden Sie cURL Befehle oder unformatierte REST-Anforderungen von PowerShell. Weitere Informationen finden Sie unter Problembehandlung bei fehlenden Anwendungstelemetriedaten in Azure Monitor Application Insights.
Schritt 3: Vermeiden doppelter Telemetriedaten
Doppelte Telemetriedaten werden häufig verursacht, wenn Sie mehrere Instanzen von Prozessoren oder Exportern erstellen. Stellen Sie sicher, dass Sie jeweils nur einen Exporter und Prozessor für jede Telemetriesäule (Protokolle, Metriken und verteilte Ablaufverfolgung) ausführen.
In den folgenden Abschnitten werden Szenarien beschrieben, die zu doppelten Telemetriedaten führen können.
Doppelte Ablaufverfolgungsprotokolle in Azure Functions
Wenn für jedes Ablaufverfolgungsprotokoll in Application Insights ein Paar von Einträgen angezeigt wird, haben Sie wahrscheinlich die folgenden Arten der Protokollierungsinstrumentation aktiviert:
- Die systemeigene Protokollierungsinstrumentation in Azure Functions
- Die
azure-monitor-opentelemetry
Protokollierungsinstrumentation innerhalb der Verteilung
Um Duplizierung zu vermeiden, können Sie die Protokollierung der Verteilung deaktivieren, aber die native Protokollierungsinstrumentation in Azure Functions aktiviert lassen. Legen Sie dazu die Umgebungsvariable OTEL_LOGS_EXPORTER
auf fest None
.
Doppelte Telemetriedaten in "Always On"-Azure Functions
Wenn die einstellung Always On in Azure Functions auf Ein festgelegt ist, Azure Functions einige Prozesse im Hintergrund laufen lassen, nachdem jede Ausführung abgeschlossen ist. Nehmen wir für instance an, dass Sie über eine Fünf-Minuten-Timerfunktion verfügen, die jedes Mal aufruftconfigure_azure_monitor
. Nach 20 Minuten verfügen Sie dann möglicherweise über vier Metrikexporteure, die gleichzeitig ausgeführt werden. Diese Situation kann die Quelle Ihrer doppelten Metriktelemetrie sein.
Legen Sie in diesem Fall entweder die Always On Einstellung auf Aus fest, oder versuchen Sie, die Anbieter zwischen jedem configure_azure_monitor
Anruf manuell herunterzufahren. Um jeden Anbieter herunterzufahren, führen Sie Herunterfahren-Aufrufe für jeden aktuellen Verbrauchseinheits-, Ablaufverfolgungs- und Protokollierungsanbieter aus, wie im folgenden Code gezeigt:
get_meter_provider().shutdown()
get_tracer_provider().shutdown()
get_logger_provider().shutdown()
Azure-Arbeitsmappen und Jupyter Notebooks
Azure-Arbeitsmappen und Jupyter Notebooks können Exporterprozesse im Hintergrund ausführen. Um doppelte Telemetriedaten zu verhindern, löschen Sie den Cache, bevor Sie weitere Aufrufe an ausführen configure_azure_monitor
.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für