Telemetría para Business Central paso a paso. - Business Central

Breaking

lunes, 19 de septiembre de 2022

Telemetría para Business Central paso a paso.

Desde que estamos subiendo Business Central a la nube, notamos una cierta perdida de control en las instalaciones de los clientes:  "Desde hace unos días Business Central me va lento", "Tarda mucho en ejecutar este proceso", ...  Esas mismas cuestiones las podías intentar resolver desde tu servidor de SQL en on-premise, logicamente teniendo expertos y descifrando trazas, pero te puedo asegurar que no todas las empresas se pueden permitir tener especialistas con capacidad de descubrir estas incidencias.

Vale, y ahora, ¿como controlamos estas incidencias?  El servidor lo mantiene Microsoft y nosotros no tenemos acceso a él, pero... para ayudarnos, disponemos de la telemetría.  Pero Roberto... ¿de que me estás hablando?  En mi Navision no había cosas de esas...  Lo siento, hay que reciclarse 😉



Telemetría en Business Central

Business Central emite señales para analizar y comprobar el correcto funcionamiento del sistema.  Solamente tienes que capturarlas para poder visualizar el estado de salud de instalación en un Power BI por ejemplo.

Aquí te dejo en enlace a la documentación oficial:


https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/telemetry-overview


Vamos a empezar de cero y veremos en el ejemplo, como capturar quien todavía está usando autorización por Web Key  (si, si, estamos en Septiembre de 2022 y después de más de un año avisando, algunos todavía no lo han cambiado y le sigue saliendo este mensaje):



Paso 1. Crea un recurso de Azure Application Insights

Las señales que Business Central emite, se pueden recoger mediante el recurso de Azure Application Insights:


Al empezar a crearlo, nos solicita los parametros habituales (suscripción, grupo de recursos, nombre, ...)

Paso 2. Conectando nuestro tenant de Business Central a nuestra Application Insights

Una vez que el recurso se ha creado, ya podemos conectar nuestro Business Central para que empiece a analizar.

Lo primero que necesitamos es la cadena de conexión, esto es, como se conectará Business Central a nuestro recurso de Application Insights.  Para ello iremos al recurso recien creado de Azure y la obtenemos:


Lo lógico es que analicemos entornos de producción y no entornos sandbox, pero por poder, puedes enlazar Application Insights en cualquier entorno, no solo SaaS, también on-premise.

Para un entorno On-Prem deberíamos de usar el siguiente comando de Power Shell:

Set-NAVServerConfiguration -ServerInstance BC200 -Tenant tenant1 -Keyname ApplicationInsightsConnectionString -Keyvalue 'InstrumentationKey=11111111-2222-3333-4444-555555555555;IngestionEndpoint=https://westeurope-1.in.applicationinsights.azure.com/'

 

Para nuestro entorno SaaS, lo que hacemos es ir al Admin Center, localizar el entorno a analizar y añadir la cadena de conexión en el lugar adecuado.

NOTA: Recuerda que se reiniciará el entorno, por lo que debes hacerlo fuera de horas de trabajo.



Una vez reiniciado el servidor, ya estamos en disposición de recibir información.

Para ayudar a resolver e indentificar problemas más rápidamente Business Central asigna a cada uno de los usuarios un ID específico para telemetría, de forma que cuando analicemos los datos, podamos saber el usuario afectado.



Paso 3. Vamos a ver datos

Una vez conectado nuestro entorno para comprobar la telemetría, solamente nos queda ver y analizar datos.

Volvemos a Application Insights y buscamos en el menú registros, ejecutamos una consulta de Kusto Query Language (KQL) como la siguiente (que significa muestrame las últimas 100 trazas ordenadas por fecha descendente):

traces | take 100 | sort by timestamp desc

Y, ahí los tenemos... el sistema nos muestra los últimos movimientos.  Incluyendo un acceso por web key realizado.


Paso 4. Usando KQL

Roberto, la hemos fastidiado.  No tengo ni idea de ese lenguaje KQL para analizar datos.  Me puedo volver loc@ buscando un problema o una incidencia.

Para solucionar eso, puedes ir al repositorio de Microsoft en gitHub donde puedes encontrar ejemplos de consultas para llegar y pegar en tu Application Insights:



Por ejemplo, hoy en plena actualidad Kennie Nybo Pontoppidan  ha publicado una consulta para comprobar los accesos mediante web key:


La copias en Application Insights y a correr:



Paso 5. Usando Power BI

Esto está fenomenal, pero si tenemos Power BI para analizar datos ¿que tal si lo usamos para controlar nuestro Business Central?

Pues aquí viene otra vez Kennie Nybo y nos facilita el trabajo.  Nos hace una App para Power BI que ya nos hace el trabajo:  



Recuerda que las Apps de Power BI son como cuadros de mando ya preconfigurados y diseñados a falta de que les conectes tus datos.  Como siempre digo en mis cursos, son como una pizza precocinada.  Solamente tienes que meterla al horno y listo.


Para descargarla, te conectas a tu servicio de Power BI, pinchas sobre aplicaciones (Apps) y la buscas:



NOTA: Necesitas una cuenta profesional o educativa para instalarla.  No vale con la gratuita, pero puedes hacer una prueba durante 60 días y ver si le sacas partido.  Apuesto a que sí.


Pasados unos minutos, tendrás tu aplicación en la lista.  Solo tienes que pichar para ejecutarla y ya tenemos los gráficos:


No tan rápido compañero.  Lo que estas viendo son los datos de ejemplo que vienen, pero no tus datos (los de tus tenants que es lo que necesitamos).  Así que lo que tenemos que hacer es conectarnos a nuestro Application Insights.

Paso 6. Conectando Power BI a tus datos de Application Insights

Lo primero que necesitamos es el Application ID del recurso que creamos anteriormente en Azure Application Insights.  Lo obtenemos desde la opción del menu "Acceso de API" y lo copiamos en el portapapeles:



Volvemos a Power BI y donde indica "Conectar los datos" pinchamos para poder indicarle nuestra clave:


Nos aparece un asistente para introducir nuestro ID:


También nos solicita los días que queremos obtener (30, 14, 7 días...)

Otro parámetro que nos pedirá es si queremos que en lugar del GUID del tenant (el número largo imposible de recordar) pongamos el nombre del cliente.  Hay que recordar que esta herramienta la puede (la debe) utilizar el partner para controlar la salud de los Business Central de sus clientes, por lo que podemos introducir los tenant de todos nuestros clientes.


También debemos de indicarle la zona horaria, para que los datos nos los muestre en un horario correcto.

Al pulsar siguiente, nos solicita las credenciales para conectarnos a nuestro Azure:



Una vez autenticado, ya lo tenemos listo. El tenant de nuestro cliente está vinculado a nuestro Azure Application Insights y éste con nuestro Power BI.  



Ahora sí, en la sección "Deprecated features" nos está indicando que mi tenant está utilizando web service key authentication y que está obsoleto.

Impresionante la cantidad de información que podemos analizar, nos daría para muchos más post revisar cada una de ellas, pero es una herramienta imprescindible para los partners que necesitan evaluar los tenant de sus clientes.














1 comentario:

Anónimo dijo...

Genial artículo. Me surge una duda. Si necesitas tener telemetría activada para varias empresas, ¿creas un recurso para cada una de ellas? Porque entonces, entiendo que si utilizaras el mismo recurso de Azure para varias, ¿llegaría un momento en que si tienes marcado un límite diario de datos para no incurrir en coste se alcanzaría enseguida? Saludos.