Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. |