Diagnósticos en SDK de Durable Task

Las opciones para diagnosticar problemas con los SDK de Durable Task dependen del proceso de Azure que usa, como Azure Container Apps, un clúster de Azure Kubernetes Service o una aplicación de Azure App Service. Se recomienda habilitar Application Insightsy el panel de supervisión del Programador de Tareas Duraderas para obtener visibilidad completa del estado y los errores de orquestación.

Application Insights

Application Insights es la manera recomendada de supervisar las aplicaciones que se ejecutan en los SDK de Durable Task. Puede encontrar y consultar estos eventos de seguimiento mediante la herramienta Application Insights Analytics en el portal de Azure.

Cada evento de ciclo de vida de una instancia de orquestación escribe un evento de seguimiento en la colección traces de Application Insights. Use las dimensiones personalizadas en estos eventos (como prop__instanceId, prop__namey prop__runtimeStatus) para filtrar y consultar orquestaciones específicas.

Servicio de computación Instrucciones para registro diagnóstico
Azure Container Apps (Aplicaciones de Contenedores de Azure) Monitoriza registros en Azure Container Apps con Log Analytics
Azure App Service Habilitación del registro de diagnóstico para aplicaciones en Azure App Service
Azure Kubernetes Service Supervisión de Azure Kubernetes Service

Consultas de ejemplo

Una vez habilitada Application Insights, use estas consultas KQL en registros para investigar el comportamiento de orquestación:

Búsqueda de orquestaciones con errores:

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

Duración de la orquestación por nombre (ú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)

Seguimiento distribuido con OpenTelemetry

Los SDK de Durable Task admiten el seguimiento distribuido de OpenTelemetry, que proporciona visibilidad de un extremo a otro en orquestaciones, actividades y suborquestaciones como intervalos correlacionados. Puede exportar seguimientos a cualquier back-end compatible con OpenTelemetry, incluidos Application Insights, Jaeger o Zipkin.

Para obtener instrucciones de configuración con ejemplos de código en todos los lenguajes admitidos, consulte OpenTelemetry y seguimiento distribuido con Durable Task Scheduler.

Panel de monitorización del programador de tareas duraderas

El panel de control de Durable Task le permite supervisar el estado de la orquestación, inspeccionar entradas y salidas, ver cronogramas de ejecución y gestionar orquestaciones (iniciar, pausar, reanudar, terminar). Está disponible tanto con el emulador local como con los planificadores albergados por Azure.

Acceso al panel

  • Emulador local: no se requiere autenticación. El panel está disponible en http://localhost:8082.
  • Programador hospedado de Azure: Asigne al Colaborador de datos de tareas durables a su identidad, luego acceda al panel a través del URL del punto de conexión del hub de tareas en el portal de Azure o en https://dashboard.durabletask.io/.

Para obtener instrucciones de configuración y uso completas, consulte Depuración y administración de orquestaciones mediante el panel del Programador de tareas durable.

Problemas comunes

Síntoma Causa posible Resolution
Orquestación bloqueada en "En ejecución" La actividad lanzó una excepción no controlada y no se ha configurado ninguna política de reintento. Consulte los detalles de la excepción en Application Insights; agregue una política de reintento o use try/catch en el orquestador.
La actividad sigue reintentando indefinidamente La directiva de reintento no tiene un límite maxNumberOfAttempts Configurar un número máximo de reintentos en la configuración de la política de reintento
La orquestación no se inicia El proceso de trabajo no está sondeando el concentrador de tareas correcto. Compruebe que el nombre del hub de tareas en la cadena de conexión coincide con el recurso del planificador.
No hay rastros en Application Insights Cadena de conexión no configurada o SDK que no emite telemetría Compruebe que APPLICATIONINSIGHTS_CONNECTION_STRING está establecido; Asegúrese de que el origen de OpenTelemetry Microsoft.DurableTask está registrado
El Dashboard no muestra orquestaciones Falta la asignación de roles o el centro de tareas incorrecto seleccionado Confirme que tiene el rol Colaborador de datos de Durable Task; compruebe el nombre del centro de tareas en la URL del panel.
La orquestación se completó, pero el resultado está vacío La actividad devuelta null o la serialización ha fallado Inspeccione las salidas de actividad en la vista del historial del panel; compruebe la configuración del serializador.

Pasos siguientes