Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Alternativen för att diagnostisera problem med Durable Task SDK:er beror på vilken Azure beräkning du använder, till exempel Azure Container Apps, ett Azure Kubernetes Service kluster eller en Azure App Service app. Vi rekommenderar att aktivera både Application Insightsochövervakningsinstrumentpanelen för Durable Task Scheduler för att få fullständig insyn i orkestreringsstatus och fel.
Programinsikter
Application Insights är det rekommenderade sättet att övervaka dina appar som körs på Durable Task SDK:er. Du kan hitta och fråga efter dessa spårningshändelser med hjälp av verktyget Application Insights Analytics i Azure-portalen.
Varje livscykelhändelse för en orkestreringsinstans skriver en spårningshändelse till spårningssamlingen i Application Insights. Använd anpassade dimensioner för dessa händelser (till exempel prop__instanceId, prop__nameoch prop__runtimeStatus) för att filtrera och fråga efter specifika orkestreringar.
| Beräkningstjänst | Instruktioner för diagnostikloggning |
|---|---|
| Azure Container-applikationer | Övervaka loggar i Azure Container Apps med Log Analytics |
| Azure App-tjänst | Aktivera diagnostikloggning för appar i Azure App Service |
| Azure Kubernetes Service | Övervaka Azure Kubernetes Service |
Exempel på förfrågningar
När Application Insights har aktiverats använder du dessa KQL-frågor i loggar för att undersöka orkestreringsbeteendet:
Hitta misslyckade orkestreringar:
traces
| where customDimensions.prop__runtimeStatus == "Failed"
| project timestamp, customDimensions.prop__instanceId, customDimensions.prop__name, message
| order by timestamp desc
| take 50
Orkestreringstid efter namn (senaste 24 timmarna):
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)
Distribuerad spårning med OpenTelemetry
Durable Task SDK:er stöder distribuerad spårning i OpenTelemetry, vilket ger dig synlighet från slutpunkt till slutpunkt mellan orkestreringar, aktiviteter och underorkestreringar som korrelerade intervall. Du kan exportera spårningar till valfri OpenTelemetry-kompatibel serverdel, inklusive Application Insights, Jaeger eller Zipkin.
Installationsinstruktioner med kodexempel på alla språk som stöds finns i OpenTelemetry och distribuerad spårning med Durable Task Scheduler.
Övervakningsöversikt för Durable Task Scheduler
Med instrumentpanelen Durable Task Scheduler kan du övervaka orkestreringsstatus, inspektera indata/utdata, visa tidslinjer för körning och hantera orkestreringar (starta, pausa, återuppta, avsluta). Tillgänglig med både den lokala emulatorn och Azure-hostade schemaläggare.
Få åtkomst till instrumentpanelen
-
Lokal emulator: Ingen autentisering krävs. Instrumentpanelen är tillgänglig på
http://localhost:8082. -
Azure-hosted scheduler: Tilldela rollen Durable Task Data Contributor till identiteten, börja sedan använda instrumentpanelen via slutpunkts-URL:en för aktivitetshubben i Azure-portalen eller på
https://dashboard.durabletask.io/.
Fullständiga installations- och användningsinstruktioner finns i Felsöka och hantera orkestreringar med instrumentpanelen Durable Task Scheduler.
Vanliga problem
| Symtom | Möjlig orsak | Lösning |
|---|---|---|
| Orkestrering har fastnat i "Running" | Aktiviteten utlöste ett ohanterat undantag och ingen återförsöksprincip har konfigurerats | Kontrollera Application Insights för undantagsinformation. Lägg till en återförsökspolicy eller try/catch i Orchestrator. |
| Aktiviteten fortsätter att göra nya försök på obestämd tid | Återförsöksprincipen har ingen maxNumberOfAttempts gräns |
Ange ett maximalt antal återförsök i konfigurationen av återförsöksprincipen |
| Orkestreringen startar inte | Worker kontrollerar inte rätt taskhub | Kontrollera att namnet på reťazec pripojenia aktivitetshubben matchar scheduler-resursen |
| Inga spårningar i Application Insights | Anslutningssträngen har inte konfigurerats eller så genererar inte SDK telemetri | Kontrollera att APPLICATIONINSIGHTS_CONNECTION_STRING har angetts. se till att OpenTelemetry-källan Microsoft.DurableTask har registrerats |
| Instrumentpanelen visar inga orkestreringar | Rolltilldelning saknas eller fel aktivitetshubb har valts | Bekräfta att du har rollen Durable Task Data Contributor och kontrollera namnet på aktivitetshubben i URL:en för instrumentpanelen. |
| Orkestreringen har slutförts men resultatet är tomt | Aktiviteten returnerades null eller serialiseringen misslyckades |
Granska aktivitetsutdata i instrumentpanelens historikvy. kontrollera serialiserarkonfigurationen |