Diagnostica degli SDK per compiti duraturi

Le opzioni per la diagnosi dei problemi con gli SDK per attività permanenti dipendono dal calcolo Azure in uso, ad esempio App contenitore di Azure, un cluster servizio Azure Kubernetes o un'app Servizio app di Azure. È consigliabile abilitare Application Insightse il dashboard di monitoraggio dello Scheduler per attività durevoli per ottenere una visione completa dello stato e dei fallimenti dell'orchestrazione.

Approfondimenti sulle Applicazioni

Application Insights è il modo consigliato per monitorare le app in esecuzione negli SDK di Durable Task. È possibile trovare ed eseguire query su questi eventi di rilevamento usando lo strumento Application Insights Analytics nel portale di Azure.

Ogni evento del ciclo di vita di un'istanza di orchestrazione scrive un evento di rilevamento nella raccolta di tracce in Application Insights. Usare le dimensioni personalizzate in questi eventi (ad esempio prop__instanceId, prop__namee prop__runtimeStatus) per filtrare ed eseguire query su orchestrazioni specifiche.

Servizio di calcolo Istruzioni per la registrazione dei log diagnostici
App contenitore di Azure Monitorare i log nelle App contenitore di Azure con Log Analytics
Servizio app di Azure Abilitare la registrazione diagnostica per le app in Servizio app di Azure
Servizio Azure Kubernetes Monitorare il servizio Azure Kubernetes

Interrogazioni di esempio

Dopo aver abilitato Application Insights, usare queste query KQL nei log per analizzare il comportamento dell'orchestrazione:

Trova orchestrazioni non riuscite:

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

Durata dell'orchestrazione per nome (nelle ultime 24 ore):

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)

Traccia distribuita con OpenTelemetry

Gli SDK di Durable Task supportano il tracciamento distribuito OpenTelemetry, che offre visibilità end-to-end tra orchestrazioni, attività e sotto-orchestrazioni come segmenti correlati. È possibile esportare tracce in qualsiasi back-end compatibile con OpenTelemetry, tra cui Application Insights, Jaeger o Zipkin.

Per istruzioni di configurazione con esempi di codice in tutti i linguaggi supportati, vedere OpenTelemetry e la traccia distribuita con Durable Task Scheduler.

Dashboard di monitoraggio di Durable Task Scheduler

Il dashboard di Durable Task Scheduler consente di monitorare lo stato dell'orchestrazione, esaminare gli input/output, visualizzare le sequenze temporali di esecuzione e gestire le orchestrazioni (avviare, sospendere, riprendere, terminare). È disponibile sia con l'emulatore locale che con le utilità di pianificazione ospitate Azure.

Accedere al dashboard

Per istruzioni complete sull'installazione e sull'utilizzo, vedere Eseguire il debug e gestire le orchestrazioni usando il dashboard dell'Utilità di pianificazione attività permanenti.

Problemi comuni

Sintomo Possibile causa Resolution
Orchestrazione bloccata su "In esecuzione" L'attività ha generato un'eccezione non gestita e non è configurato alcun criterio di ripetizione dei tentativi Controllare Application Insights per informazioni dettagliate sulle eccezioni; aggiungere una politica di ripetizione o un blocco try/catch nell'orchestratore.
L'attività continua a riprovare a tempo indeterminato La politica di ritentativo non ha alcun limite maxNumberOfAttempts Impostare un numero massimo di tentativi nella configurazione dei criteri di ripetizione dei tentativi
L'orchestrazione non si avvia L'operatore non esegue il polling dell'hub delle attività corretto Verificare che il nome del task hub della stringa di connessione corrisponda alla risorsa dello scheduler
Nessuna traccia in Application Insights Stringa di connessione non configurata o SDK che non genera dati di telemetria Verificare che sia impostato APPLICATIONINSIGHTS_CONNECTION_STRING; assicurarsi che l'origine OpenTelemetry Microsoft.DurableTask sia registrata
Il dashboard non mostra orchestrazioni Assegnazione di ruolo mancante o errata nel hub delle attività selezionato Verificare di avere il ruolo Collaboratore dati attività permanenti ; controllare il nome dell'hub attività nell'URL del dashboard
Orchestrazione completata, ma il risultato è vuoto Attività restituita null o serializzazione non riuscita Esaminare gli output delle attività nella visualizzazione cronologia del dashboard; Controllare la configurazione del serializzatore

Passaggi successivi