Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As suas opções para diagnosticar problemas com os SDKs Durable Task dependem do cálculo Azure que está a usar, como Azure Container Apps, um cluster Azure Kubernetes Service ou uma aplicação Serviço de Aplicações do Azure. Recomendamos ativar tanto o Application Insightscomo o painel de monitorização do Durable Task Scheduler para obter visibilidade total do estado da orquestração e falhas.
Application Insights
O Application Insights é a forma recomendada de monitorizar as suas aplicações a correr nos SDKs de Tarefas Duradouras. Pode encontrar e consultar estes eventos de rastreio usando a ferramenta Application Insights Analytics no portal Azure.
Cada evento do ciclo de vida de uma instância de orquestração escreve um evento de rastreio na coleção de traços no Application Insights. Use as dimensões personalizadas nestes eventos (como prop__instanceId, prop__name, e prop__runtimeStatus) para filtrar e consultar orquestrações específicas.
| serviço de computação | Instruções de registo de diagnóstico |
|---|---|
| Azure Container Apps | Monitorize os registos no Azure Container Apps em Log Analytics |
| Serviço de Aplicações do Azure | Ativar o registo de diagnóstico para aplicações em Serviço de Aplicações do Azure |
| Azure Kubernetes Service | Monitor Azure Kubernetes Service |
Exemplos de consultas
Depois de o Application Insights estar ativado, utilize estas consultas KQL nos Logs para investigar o comportamento da orquestração:
Encontre orquestrações falhadas:
traces
| where customDimensions.prop__runtimeStatus == "Failed"
| project timestamp, customDimensions.prop__instanceId, customDimensions.prop__name, message
| order by timestamp desc
| take 50
Duração da orquestração por nome (últimas 24 horas):
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)
Rastreamento distribuído com OpenTelemetry
Os SDKs de Tarefas Duráveis suportam o rastreamento distribuído OpenTelemetry, que lhe dá uma visibilidade de ponta a ponta sobre orquestrações, atividades e suborquestrações como abrangências correlacionadas. Pode exportar traços para qualquer backend compatível com OpenTelemetry, incluindo Application Insights, Jaeger ou Zipkin.
Para instruções de configuração com exemplos de código em todas as linguagens suportadas, consulte OpenTelemetry e rastreamento distribuído com o Durable Task Scheduler.
Painel de monitorização do Durable Task Scheduler
O painel do Durable Task Scheduler permite-lhe monitorizar o estado da orquestração, inspecionar entradas/saídas, visualizar linhas temporales de execução e gerir orquestrações (iniciar, pausar, retomar, terminar). Está disponível tanto com o emulador local como com os agendadores alojados no Azure.
Aceda ao painel
-
Emulador local: Não é necessária autenticação. O painel está disponível em
http://localhost:8082. -
Scheduler hospedado no Azure: Atribua o papel Durable Task Data Contributor à sua identidade, depois aceda ao painel de controlo através da URL do endpoint do hub de tarefas no portal Azure ou em
https://dashboard.durabletask.io/.
Para instruções completas de configuração e utilização, consulte Depurar e gerir orquestrações usando o painel do Durable Task Scheduler.
Problemas comuns
| Sintoma | Causa possível | Resolução |
|---|---|---|
| Orquestração presa em "Running" | A atividade gerou uma exceção não tratada e nenhuma política de nova tentativa foi configurada | Consulte o Application Insights para obter detalhes das exceções; adicionar uma política de repetição ou tente/capture no orquestrador |
| A atividade continua a tentar indefinidamente | A política de retentativas não maxNumberOfAttempts tem limite |
Defina um número máximo de tentativas na configuração de política de tentativas |
| A orquestração não é iniciada | O trabalhador não está a consultar o Task Hub correto. | Verifique se o nome do cadeia de ligação task hub corresponde ao recurso do agendador |
| Sem vestígios no Application Insights | Cadeia de ligação não configurada ou SDK que não emite telemetria | Verifique que APPLICATIONINSIGHTS_CONNECTION_STRING está definido; garanta que a fonte OpenTelemetry Microsoft.DurableTask está registada |
| O painel de controlo não mostra orquestrações | Atribuição de funções em falta ou com o hub de tarefas errado selecionado | Confirme que tem o papel de Contribuidor de Dados de Tarefas Duradouras, verifique o nome do hub de tarefas no URL do painel |
| Orquestração concluída mas o resultado está vazio | Atividade retornou null ou a serialização falhou |
Inspecionar as saídas de atividade na visualização de histórico do painel; verificar a configuração do serializador |