Diagnostics dans les SDK Durable Task

Vos options de diagnostic des problèmes liés aux kits SDK Durable Task dépendent de la Azure calcul que vous utilisez, comme Azure Container Apps, un cluster Azure Kubernetes Service ou une application Azure App Service. Nous vous recommandons d’activer Application Insightset le tableau de bord de supervision durable du planificateur de tâches pour obtenir une visibilité complète sur l’état et les échecs de l’orchestration.

Application Insights

Application Insights est la méthode recommandée pour surveiller vos applications s’exécutant sur les kits SDK Durable Task. Vous pouvez rechercher et interroger ces événements de suivi à l’aide de l’outil Application Insights Analytics dans le portail Azure.

Chaque événement de cycle de vie d’une instance d’orchestration écrit un événement de suivi dans la collection de traces dans Application Insights. Utilisez les dimensions personnalisées sur ces événements (comme prop__instanceId, prop__nameet prop__runtimeStatus) pour filtrer et interroger des orchestrations spécifiques.

Service de calcul Instructions de journalisation des diagnostics
Azure Container Apps (Applications de Conteneur Azure) Surveiller les journaux dans Azure Container Apps avec Log Analytics
Azure App Service Activer la journalisation des diagnostics pour les applications dans Azure App Service
Azure Kubernetes Service Surveiller le service Azure Kubernetes

Exemples de requêtes

Une fois Application Insights activé, utilisez ces requêtes KQL dans Journaux pour examiner le comportement d’orchestration :

Rechercher les orchestrations ayant échoué :

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

Durée de l’orchestration par nom (dernières 24 heures) :

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)

Suivi distribué avec OpenTelemetry

Les SDK Durable Task prennent en charge le suivi distribué OpenTelemetry, ce qui vous donne une visibilité de bout en bout sur les orchestrations, les activités et les sous-orchestrations sous forme de spans corrélés. Vous pouvez exporter des traces vers n’importe quel back-end compatible OpenTelemetry, y compris Application Insights, Jaeger ou Zipkin.

Pour obtenir des instructions de configuration avec des exemples de code dans tous les langages pris en charge, consultez OpenTelemetry et le suivi distribué avec Durable Task Scheduler.

Tableau de bord de surveillance durable du planificateur de tâches

Le tableau de bord Planificateur de tâches durables vous permet de surveiller l’état de l’orchestration, d’inspecter les entrées/sorties, d’afficher les chronologies d’exécution et de gérer les orchestrations (démarrer, suspendre, reprendre, terminer). Il est disponible avec l'émulateur local et les planificateurs hébergés par Azure.

Accéder au tableau de bord

  • Émulateur local : aucune authentification n’est requise. Le tableau de bord est disponible à l’adresse http://localhost:8082.
  • Azure-hosted scheduler : Attribuez le rôle de Durable Task Data Contributor à votre identité, puis accédez au tableau de bord via l'URL du point de terminaison du hub de tâches dans le portail Azure ou à https://dashboard.durabletask.io/.

Pour obtenir des instructions d’installation et d’utilisation complètes, consultez Déboguer et gérer des orchestrations à l’aide du tableau de bord Du planificateur de tâches durables.

Problèmes courants

Symptôme Cause potentielle Résolution
Orchestration bloquée dans « En cours d’exécution » L’activité a levé une exception non gérée et aucune stratégie de nouvelle tentative n’est configurée Vérifiez Application Insights pour les détails de l’exception ; ajoutez une stratégie de nouvelle tentative ou un try/catch dans l’orchestrateur.
L’activité continue de réessayer indéfiniment La stratégie de nouvelle tentative n’a aucune maxNumberOfAttempts limite Définir un nombre maximal de nouvelles tentatives dans votre configuration de stratégie de nouvelle tentative
Orchestration ne démarre pas Worker n’interroge pas le hub de tâches approprié Vérifiez que le nom du hub de tâches chaîne de connexion correspond à la ressource du planificateur
Aucune trace dans Application Insights Chaîne de connexion non configurée ou KIT DE développement logiciel (SDK) qui n’émet pas de données de télémétrie Vérifiez que APPLICATIONINSIGHTS_CONNECTION_STRING est défini ; vérifier que la source OpenTelemetry Microsoft.DurableTask est inscrite
Le tableau de bord n’affiche aucune orchestration Attribution de rôle manquante ou hub de tâches incorrect sélectionné Vérifiez que vous avez un rôle Contributeur de données de tâche durable ; vérifier le nom du hub de tâches dans l’URL du tableau de bord
Orchestration terminée, mais le résultat est vide Échec du retour de l'activité null ou de la sérialisation Inspecter les sorties d’activité dans la vue d’historique du tableau de bord ; vérifier la configuration du sérialiseur

Étapes suivantes