Diagnostyka w pakietach SDK Durable Task

Dostępne opcje diagnozowania problemów z zestawami SDK obsługi Durable Task zależą od używanych usług obliczeniowych Azure, takich jak Azure Container Apps, klaster Azure Kubernetes Service lub aplikacja Azure App Service. Zalecamy włączenie zarówno usługi Application Insights oraz pulpitu nawigacyjnego monitorowania harmonogramu zadań Durable, aby uzyskać pełną widoczność stanu orkiestracji i awarii.

Application Insights

Usługa Application Insights jest zalecanym sposobem monitorowania aplikacji uruchomionych w zestawach SDK rozszerzenia Durable Task. Możesz znaleźć i wykonać zapytania dotyczące tych zdarzeń śledzenia przy użyciu narzędzia Application Insights Analytics w portalu Azure.

Każde zdarzenie cyklu życia wystąpienia orkiestracji zapisuje zdarzenie śledzenia w kolekcji tras w Application Insights. Użyj wymiarów niestandardowych dla tych zdarzeń (takich jak prop__instanceId, prop__name i prop__runtimeStatus), aby filtrować i wykonywać zapytania dotyczące określonych orkiestracji.

usługa obliczeniowa Instrukcje dotyczące rejestrowania diagnostycznego
Azure Container Apps Monitorowanie dzienników w Azure Container Apps za pomocą Log Analytics
Azure App Service Włącz rejestrowanie diagnostyczne dla aplikacji w Azure App Service
Azure Kubernetes Service Monitorowanie usługi Azure Kubernetes Service

Przykłady zapytań

Po włączeniu usługi Application Insights użyj tych zapytań KQL w Logs, aby zbadać zachowanie orkiestracji.

Znajdź nieudane aranżacje:

traces
| where customDimensions.prop__runtimeStatus == "Failed"
| project timestamp, customDimensions.prop__instanceId, customDimensions.prop__name, message
| order by timestamp desc
| take 50

Czas trwania orkiestracji według nazwy (ostatnie 24 godziny):

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)

Śledzenie rozproszone za pomocą technologii OpenTelemetry

SDK Durable Task obsługują rozproszone śledzenie OpenTelemetry, co zapewnia kompleksową widoczność w całym zakresie orkiestracji, akcji i podorkiestracji jako skorelowane odcinki. Możesz wyeksportować ślady do dowolnego zaplecza zgodnego z technologią OpenTelemetry, w tym usługi Application Insights, Jaeger lub Zipkin.

Aby uzyskać instrukcje dotyczące konfiguracji z przykładami kodu we wszystkich obsługiwanych językach, zobacz OpenTelemetry and distributed tracing with Durable Task Scheduler (Śledzenie rozproszone za pomocą narzędzia Durable Task Scheduler).

Trwały pulpit nawigacyjny monitorowania harmonogramu zadań

Panel sterowania Durable Task Scheduler umożliwia monitorowanie stanu orkiestracji, inspekcję danych wejściowych/wyjściowych, wyświetlanie osi czasowej wykonywania i zarządzanie orkiestracjami (uruchamianie, wstrzymywanie, wznawianie, kończenie). Jest dostępna zarówno w lokalnym emulatorze, jak i w harmonogramach hostowanych w Azure.

Uzyskiwanie dostępu do pulpitu nawigacyjnego

  • Emulator lokalny: brak wymaganego uwierzytelniania. Pulpit nawigacyjny jest dostępny pod adresem http://localhost:8082.
  • Harmonogram hostowany na Azure: Przypisz rolę Współautora danych zadań do swojej tożsamości, a następnie uzyskaj dostęp do pulpitu nawigacyjnego, korzystając z adresu URL punktu końcowego centrum zadań w portalu Azure lub pod adresem https://dashboard.durabletask.io/.

Aby uzyskać pełne instrukcje dotyczące konfiguracji i użycia, zobacz Debugowanie aranżacji i zarządzanie nimi przy użyciu pulpitu nawigacyjnego narzędzia Durable Task Scheduler.

Typowe problemy

Objaw Możliwa przyczyna Resolution
Orkiestracja utknęła w stanie "Działanie" Działanie zgłosiło nieobsługiwany wyjątek i nie skonfigurowano żadnych zasad ponawiania prób Sprawdź szczegółowe informacje o wyjątkach w usłudze Application Insights; dodaj zasady ponawiania prób lub zastosuj try/catch w orkiestratorze.
Działanie ciągle ponawia próbę bez końca Polityka ponawiania nie ma maxNumberOfAttempts ograniczeń Ustawianie maksymalnej liczby ponownych prób w konfiguracji zasad ponawiania prób
Orkiestracja nie rozpoczyna się Proces roboczy nie sonduje właściwego centrum zadań Sprawdź, czy nazwa centrum zadań parametry połączenia jest zgodna z zasobem harmonogramu
Brak śladów w usłudze Application Insights Parametry połączenia nie zostały skonfigurowane lub zestaw SDK nie emituje danych telemetrycznych Sprawdź, czy ustawiono APPLICATIONINSIGHTS_CONNECTION_STRING; upewnij się, że źródło OpenTelemetry Microsoft.DurableTask jest zarejestrowane
Panel nie pokazuje orkiestracji Brakuje przypisania roli lub wybranego nieprawidłowego centrum zadań Upewnij się, że masz rolę Współautor danych zadania trwałego; sprawdź nazwę centrum zadań w adresie URL pulpitu nawigacyjnego.
Aranżacja została ukończona, ale wynik jest pusty Zadanie zwróciło null lub nie udało się zserializować Sprawdzanie danych wyjściowych działań w widoku historii pulpitu nawigacyjnego; sprawdzanie konfiguracji serializatora

Następne kroki