Diagnóstico em SDKs de Tarefas Duráveis

Suas opções para diagnosticar problemas com os SDKs de Tarefa Durável dependem da computação do Azure que você está usando, como aplicativos do Aplicativos de Contêiner do Azure, um cluster do Serviço de Kubernetes do Azure ou um aplicativo do Serviço de Aplicativo do Azure. É recomendável habilitar o Application Insightse o painel de monitoramento do Agendador de Tarefas Duráveis para obter visibilidade total sobre o status e as falhas de orquestração.

Application Insights

O Application Insights é a maneira recomendada de monitorar seus aplicativos em execução nos SDKs de Tarefa Durável. Você pode encontrar e consultar esses eventos de acompanhamento usando a ferramenta Application Insights Analytics no portal do Azure.

Cada evento de ciclo de vida de uma instância de orquestração grava um evento de rastreamento na coleção traces no Application Insights. Use as dimensões personalizadas nesses eventos (como prop__instanceId, prop__namee prop__runtimeStatus) para filtrar e consultar orquestrações específicas.

Serviço de computação Instruções de log de diagnóstico
Aplicativos de Contêiner do Azure Monitorar logs nos Aplicativos de Contêiner do Azure com o Log Analytics
Serviço de Aplicativo do Azure Ativar a gravação de logs de diagnóstico para aplicativos no Serviço de Aplicativo do Azure
Serviço de Kubernetes do Azure Monitorar o Serviço de Kubernetes do Azure

Consultas de exemplo

Depois que o Application Insights estiver habilitado, use estas consultas KQL em Logs para investigar o comportamento de orquestração:

Localizar orquestrações com falha:

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 Tarefa Durável dão suporte ao rastreamento distribuído OpenTelemetry, que fornece visibilidade de ponta a ponta entre orquestrações, atividades e sub-orquestrações como intervalos correlacionados. Você pode exportar rastreamentos para qualquer back-end compatível com OpenTelemetry, incluindo Application Insights, Jaeger ou Zipkin.

Para obter instruções de instalação com exemplos de código em todos os idiomas com suporte, consulte OpenTelemetry e rastreamento distribuído com o Agendador de Tarefas Duráveis.

Painel de monitoramento do Agendador de Tarefas Duráveis

O painel Agendador de Tarefas Duráveis permite monitorar o status de orquestração, inspecionar entradas/saídas, exibir linhas do tempo de execução e gerenciar orquestrações (iniciar, pausar, retomar, terminar). Ele está disponível com o emulador local e agendadores hospedados por Azure.

Acessar o painel

  • Emulador local: nenhuma autenticação necessária. O painel está disponível em http://localhost:8082.
  • Azure-hosted scheduler: Atribua a função Durable Task Data Contributor à sua identidade e, em seguida, acesse o painel usando o URL do ponto de extremidade do hub de tarefas no portal do Azure ou em https://dashboard.durabletask.io/.

Para obter instruções completas de configuração e uso, consulte Depurar e gerenciar orquestrações usando o painel do Agendador de Tarefas Duráveis.

Problemas comuns

Sintoma Causa possível Resolução
Orquestração presa em "Em execução" A atividade gerou uma exceção não tratada e nenhuma política de tentativa repetida foi configurada Verifique no Application Insights para obter detalhes das exceções; adicione uma política de repetição ou tente/capture no orquestrador.
A atividade continua repetindo indefinidamente A política de repetição não tem limite maxNumberOfAttempts Definir uma contagem máxima de repetição na configuração de política de repetição
Orquestração não está iniciando O trabalhador não está consultando o hub de tarefas correto Verifique se o nome da central de tarefas na cadeia de conexão corresponde ao recurso do agendador
Nenhum rastro no Application Insights Cadeia de conexão não configurada ou SDK não emitindo telemetria Verifique se APPLICATIONINSIGHTS_CONNECTION_STRING está definido; verifique se a fonte Microsoft.DurableTask openTelemetry está registrada
O painel não mostra orquestrações Atribuição de função ausente ou hub de tarefas incorreto selecionado Confirme se você tem a função Colaborador de Dados da Tarefa Durável e verifique o nome do hub de tarefas na URL do painel.
Orquestração concluída, mas o resultado está vazio Atividade retornada null ou falha na serialização Inspecione as saídas de atividade no modo de exibição de histórico do painel; verifique a configuração do serializador

Próximas Etapas