Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihre Optionen für die Diagnose von Problemen mit den SDKs für dauerhafte Aufgaben hängen von der Azure Berechnung ab, die Sie verwenden, z. B. Azure Container Apps, ein Azure Kubernetes Service Cluster oder eine Azure App Service-App. Es wird empfohlen, sowohl Application Insightsals auch das Monitoring-Dashboard für dauerhafte Aufgabenplanung zu aktivieren, um vollständige Einblicke in den Orchestrierungsstatus und Fehler zu erhalten.
Anwendungsanalysen
Application Insights ist die empfohlene Methode, um Ihre Apps zu überwachen, die auf den SdKs für dauerhafte Aufgaben ausgeführt werden. Sie können diese Nachverfolgungsereignisse mithilfe des Tools Application Insights Analytics im Azure-Portal suchen und abfragen.
Jedes Lebenszyklus-Ereignis einer Orchestrierung-Instanz schreibt ein Tracing-Ereignis in die traces Collection in Application Insights. Verwenden Sie die benutzerdefinierten Dimensionen für diese Ereignisse (wie prop__instanceId, prop__name und prop__runtimeStatus) zum Filtern und Abfragen bestimmter Orchestrierungen.
| Berechnungsdienst | Anweisungen zur Diagnoseprotokollierung |
|---|---|
| Azure Container Apps – ein Dienst für containerbasierte Anwendungen | Überwachen von Protokollen in Azure Container Apps mit Log Analytics |
| Azure App Service | Aktivieren der Diagnoseprotokollierung für Apps in Azure App Service |
| Azure Kubernetes-Dienst | Überwachen des Azure Kubernetes-Diensts |
Beispielabfragen
Nachdem Application Insights aktiviert ist, verwenden Sie diese KQL-Abfragen in Protokollen , um das Orchestrierungsverhalten zu untersuchen:
Fehlgeschlagene Orchestrierungen finden:
traces
| where customDimensions.prop__runtimeStatus == "Failed"
| project timestamp, customDimensions.prop__instanceId, customDimensions.prop__name, message
| order by timestamp desc
| take 50
Orchestrierungsdauer nach Name (letzte 24 Stunden):
traces
| where timestamp > ago(24h)
| where customDimensions.prop__runtimeStatus == "Completed"
| extend duration = todatetime(customDimensions.prop__completedTime) - todatetime(customDimensions.prop__createdTime)
| summarize avg(duration), max(duration), count() by tostring(customDimensions.prop__name)
Verteilte Ablaufverfolgung mit OpenTelemetry
Die SDKs für Durable Task unterstützen die verteilte OpenTelemetry-Ablaufverfolgung, die Ihnen eine durchgängige Sichtbarkeit über Orchestrierungen, Aktivitäten und Sub-Orchestrierungen als korrelierte Abschnitte ermöglicht. Sie können Ablaufverfolgungen in ein beliebiges OpenTelemetry-kompatibles Backend exportieren, einschließlich Application Insights, Jaeger oder Zipkin.
Anweisungen zum Einrichten mit Codebeispielen in allen unterstützten Sprachen finden Sie unter OpenTelemetry und verteilte Ablaufverfolgung mit Durable Task Scheduler.
Dashboard zur Überwachung des dauerhaften Aufgabenplanungsmoduls
Mit dem Dashboard "Durable Task Scheduler " können Sie den Orchestrierungsstatus überwachen, Eingaben/Ausgaben prüfen, Ausführungszeitachsen anzeigen und Orchestrierungen verwalten (Start, Pause, Fortsetzen, Beenden). Sie ist sowohl mit dem lokalen Emulator als auch mit Azure gehosteten Schedulern verfügbar.
Zugreifen auf das Dashboard
-
Lokaler Emulator: Keine Authentifizierung erforderlich. Das Dashboard ist verfügbar unter
http://localhost:8082. -
Azure-hosted scheduler: Weisen Sie Ihrer Identität die Rolle Durable Task Data Contributor zu, greifen Sie dann über die Endpunkt-URL des Aufgabenhubs im Azure-Portal oder unter
https://dashboard.durabletask.io/auf das Dashboard zu.
Vollständige Einrichtungs- und Verwendungsanweisungen finden Sie unter Debuggen und Verwalten von Orchestrierungen mithilfe des Dashboards für dauerhafte Aufgabenplanung.
Häufig auftretende Probleme
| Symptom | Mögliche Ursache | Resolution |
|---|---|---|
| Die Orchestrierung befindet sich dauerhaft im Zustand "Laufen". | Die Aktivität hat eine unbehandelte Ausnahme ausgelöst, und es wurde keine Wiederholungsrichtlinie konfiguriert. | Prüfen Sie Application Insights auf Details zu Ausnahmen, und fügen Sie eine Wiederholungsrichtlinie oder ein try/catch im Orchestrator hinzu. |
| Die Aktivität wiederholt sich unendlich | Die Wiederholungsrichtlinie hat keine maxNumberOfAttempts Beschränkung. |
Festlegen der maximalen Wiederholungsanzahl in der Konfiguration der Wiederholungsrichtlinie |
| Orchestrierung nicht gestartet | Worker fragt nicht den richtigen Task-Hub ab | Überprüfen, ob der Name des Verbindungszeichenfolge Vorgangshubs der Planerressource entspricht. |
| Keine Spuren in Application Insights | Verbindungszeichenfolge nicht konfiguriert oder SDK sendet keine Telemetrie | Vergewissern Sie sich, dass APPLICATIONINSIGHTS_CONNECTION_STRING festgelegt ist; Stellen Sie sicher, dass die OpenTelemetry-Microsoft.DurableTask-Quelle registriert ist. |
| Das Dashboard zeigt keine Orchestrierungen an. | Die Rollenzuweisung fehlt oder ein falscher Aufgabenbereich wurde ausgewählt. | Vergewissern Sie sich, dass Sie über die Rolle " Datenmitwirkender dauerhafter Aufgaben " verfügen; Überprüfen des Aufgabenhubnamens in der Dashboard-URL |
| Die Orchestrierung wurde abgeschlossen, aber das Ergebnis ist leer. | Aktivität gab null zurück oder die Serialisierung ist fehlgeschlagen. |
Überprüfen von Aktivitätsausgängen in der Verlaufsansicht des Dashboards; Überprüfen der Serialisierungskonfiguration |