Uno de los grandes cambios en la evolución de Business Central en su versión SaaS ha sido la capacidad de obtener datos de rendimiento en tiempo real a través de la telemetría. Aunque durante años hemos dependido de pruebas manuales, feedback de los usuarios y herramientas de diagnóstico locales, la integración con Azure Application Insights ha cambiado el enfoque completamente.
Hoy en día, si queremos gestionar un entorno de Business Central con eficiencia, no basta con reaccionar a los problemas cuando ocurren. Necesitamos datos, tendencias y capacidad de análisis en tiempo real. La telemetría nos permite ver qué está ocurriendo en nuestro sistema, cómo se comportan las extensiones personalizadas y dónde se encuentran los cuellos de botella antes de que impacten a los usuarios.
Este artículo explora el papel de la telemetría en Business Central, cómo aprovecharla para optimizar el rendimiento y la importancia de reportar problemas de manera estructurada a Microsoft.
Si vienes del mundo on-premises, seguramente estabas acostumbrado a analizar problemas de rendimiento revisando el SQL Server, ejecutando Profiler o consultando eventos en el visor de Windows. En Business Central SaaS, no tenemos acceso directo a la base de datos ni a los servidores, por lo que dependemos totalmente de la telemetría para entender qué está ocurriendo.
Gracias a Application Insights, podemos capturar y analizar métricas como:
Tiempo de respuesta de consultas SQL
Ejecución y latencia en informes
Consumo de recursos en el entorno SaaS
Errores y excepciones en código AL
Interacciones de usuario y tiempos de carga
Esto nos da la capacidad de anticiparnos a problemas que antes solo detectábamos cuando los usuarios empezaban a quejarse. Además, nos permite tomar decisiones informadas sobre cómo optimizar nuestro entorno.
La telemetría en Business Central se basa en la integración con Azure Application Insights, lo que significa que podemos consultar logs, crear dashboards y definir alertas automatizadas.
Para activarla, hay que seguir estos pasos:
1⃣ Configurar una cuenta de Application Insights en Azure
2⃣ Obtener el Instrumentation Key y configurarlo en Business Central
3⃣ Activar el seguimiento de eventos en AL para extensiones personalizadas
4⃣ Analizar métricas en tiempo real desde el portal de Azure
Con estos datos, podemos responder preguntas como:
El Lenguaje de Consulta Kusto (KQL) se ha convertido en una herramienta fundamental para explorar y analizar datos de telemetría en Azure Application Insights. Con KQL, podemos obtener información precisa sobre el rendimiento del sistema y detectar problemas de manera eficiente.
1. Consultar las 20 métodos de AL mas lentos :
traces
| where timestamp > ago(1d) // adjust as needed
and customDimensions.eventId == 'RT0018'
| extend aadTenantId = tostring( customDimensions.aadTenantId )
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, alMethod = tostring( customDimensions.alMethod )
, alObjectId = toint( customDimensions.alObjectId )
, alObjectName = tostring( customDimensions.alObjectName )
, alObjectType = tostring(customDimensions.alObjectType)
, executionTime = customDimensions.executionTime
, executionTimeInMS = toreal(totimespan(customDimensions.executionTime))/10000 //the datatype for executionTime is timespan
, extensionName = tostring( customDimensions.extensionName )
| extend executionTimeInSec = executionTimeInMS / 1000
| summarize count(), dcount( aadTenantId ), sum( executionTimeInSec ), avg( executionTimeInSec ) by alMethod, alObjectType, alObjectName, extensionName
| order by avg_executionTimeInSec desc
| limit 20
2. Identificar consultas SQL de larga duración:
traces
| where timestamp > ago(60d)
| where operation_Name == 'Long Running Operation (SQL Query)'
or customDimensions.eventId == 'RT0005'
| where customDimensions.alObjectId > 0
| project timestamp,
aadTenantId = customDimensions.aadTenantId,
environmentName = customDimensions.environmentName,
companyName = customDimensions.companyName,
alObjectId = customDimensions.alObjectId,
alObjectName = customDimensions.alObjectName,
alObjectType = customDimensions.alObjectType,
executionTime = customDimensions.executionTime,
executionTimeInMS = toreal(totimespan(customDimensions.executionTime))/10000,
sqlStatement = tostring(customDimensions.sqlStatement)
| order by executionTimeInMS desc
3. Analizar bloqueos de base de datos:
traces
| where timestamp > ago(7d)
| where customDimensions.eventId == 'AL0006'
| project timestamp, customDimensions.lockType, customDimensions.lockDuration, customDimensions.tableName
| order by timestamp desc
Microsoft ha facilitado una vía para que los administradores puedan reportar problemas de rendimiento a través del portal oficial.
Para asegurarnos de que el reporte sea efectivo, es clave incluir:
ID del entorno y región donde está alojado
Descripción detallada del problema (fechas, frecuencia, usuarios afectados)
Capturas o registros de Application Insights
Pasos para reproducir el problema
La diferencia entre un reporte bien estructurado y un simple «Business Central va lento» puede ser el tiempo de respuesta de soporte y la eficacia de la solución. Cuanto más precisos seamos con la telemetría, más fácil será identificar la causa del problema.
A medida que Microsoft sigue evolucionando Business Central, la telemetría será un recurso cada vez más imprescindible. La capacidad de analizar datos en tiempo real, generar insights y actuar sobre problemas antes de que impacten a los usuarios es lo que marcará la diferencia en la administración de entornos SaaS.
¿Has utilizado la telemetría en Business Central? ¿Cómo ha sido tu experiencia? Déjamelo en los comentarios o escríbeme en techspheredynamics.com
Analyze and monitor telemetry with KQL – Business Central | Microsoft Learn
Suscríbete al canal (anima y da ese empujón a todo esto).
Pulsa «like» si te ha gustado.
Si no quieres perderte nada, ya sabes, pulsa la campana.
En los comentarios déjame cualquier idea, duda, corrección o aportación. Todo será bien bienvenido.
Nota: El contenido de este artículo ha sido generado con la ayuda de IA, para más información haz clic aquí