MuleSoft Metrics Accelerator (I) - Qué es y Cómo Instalarlo


Metrics Accelerator es una herramienta para automatizar la extracción, agregación y la visualizacion de metricas, o mejor dicho, la carga de métricas en un sistema de visualización. Es una herramienta creada por nuestro equipo de Servicios Profesionales de MuleSoft, a partir del trabajo que han hecho para varios de nuestros clientes. Lo han estandarizado y lo han puesto a disposición de la comunidad como proyecto Open Source en GitHub. 

Por tanto, como proyecto open source se proporciona el código fuente y se deja abierto para que cualquiera pueda colaborar a evolucionarlo. Aquí tenéis el enlace al proyecto en GitHub de Metrics Accelerator.

En esta serie de posts vamos a ver en detalle la herramienta: desde cómo instalarlo hasta cómo crear dashboards en un sistema de visualización, viendo los detalles de funcionamiento y configuración. En este primer post veremos cómo instalarlo y empezar a utilizarlo. Y, en los próximos veremos:


Entrando en detalle, Metrics Accelerator es una aplicación Mule, es decir es una aplicación que se ejecutará en un runtime de Mule y que fundamentalmente va a hacer tres cosas: recoger datos, transformarlos y enviarlos. Así pues, la aplicación está estructurada en tres partes:
  • Collectors: En primer lugar la aplicación capturará gran parte de los datos mediante llamadas a las Platform APIs de AnyPoint al conjunto de nuestra plataforma. La aplicación recorre todos nuestros Business Groups y Entornos. Si quieres saber más sobre las Platform APIs y como usarlas con Postman en este otro post te lo explico en detalle.

En otras palabras, la aplicación incorpora y automatiza todas las llamadas necesarias a las Platform APIs que hacemos manualmente con Postman o API console para recoger métricas . Esto es lo que llamamos un collector. Aparte del Collector encargado de las llamadas a las Platform APIs es posible añadir más Collectors para recoger información de más sistemas. A dia de hoy (Abril 2021), Metrics Accelerator incorpora también Collectors para Jenkins, Jira, Confluence, BitBucket y Splunk.

  • Aggregators/Transformers: En segundo lugar, a partir de toda la info que hemos recogido de los Collectors, como si fuese una Process API, va a hacer toda esa labor de agregación, filtrado y transformación para quedarnos con lo que nos interesa, las métricas. Es decir, la aplicación a partir de toda esta info lo que hace es adaptar y preparar el mensaje de respuesta.
  • Loaders: Por último, la aplicación, una vez que ha obtenido estas métricas lo que hace es enviar este mensaje de respuesta a un sistema de visualización. Este sistema de visualización puede ser desde un navegador web al que se le pasa la respuesta en formato JSON/CSV o un sistema tipo Splunk o ELK que definen sus entradas de datos. Para ello, será necesario que cada loader tenga su propia configuración. Así, por ejemplo, si decidimos enviar nuestras métricas a Splunk, nuestro loader necesitará datos como el hostname y el puerto al que se enviarán los datos.
image.png

Cómo instalar Metrics Accelerator

Antes de instalar nada, qué necesitamos para comenzar a utilizar el metrics accelerator? Esto es lo que tenemos que tener en cuenta como prerrequisitos:
  • La version del runtime de Mule minima es 4.2.2 (a dia de hoy, Abril de 2021).
  • El Organization ID: El ID de nuestra Master Org de Anypoint de la que queremos extraer nuestras métricas.
  • Usuario y password de acceso a AnyPoint: Aqui tenemos dos opciones:
    • Proporcionar un usuario con permisos de Administrator en la Master Org.
    • O bien, delegar estos permisos utilizando OAuth y Open ID Connect a través de una Connected App. Más info aqui en este link.
El proceso de instalación del Metrics Accelerator es muy sencillo.
  • En primer lugar, descargamos el proyecto o clonamos el repositorio de GitHub. El repositorio GitHub lo tenéis aquí.
  • A continuación importamos el proyecto en AnyPoint Studio y, sin todavia realizar ningún cambio, lo ejecutamos en local. Esto es para asegurarnos que el proyecto funciona correctamente y que no nos falta nada dentro del proyecto.
image.png
  • Para comprobar que la aplicación funciona y nos devuelve datos abrimos la consola (http://localhost:8081/console) y lanzamos una petición a cualquiera de los endpoints disponibles.
  • Nos hará falta, como comentábamos antes, añadir usuario, password y Org Id para poder probar las llamadas a cualquier endpoint. Si todo ha ido bien y obtenemos datos correctamente ya podemos empezar a jugar con el Metrics Accelerator. Fijaros como en muy poco tiempo, solo lanzando la aplicación en local y sin entrar en detalles de configuración, hemos obtenido una enorme cantidad de métricas. Por ejemplo, si hacemos un GET al endpoint de Platform Metrics fijaros como obtengo métricas de multiples partes de la plataforma: de Exchange, de Runtime Manage, de Design Center... no está mal para empezar, no? 

Por último, recordad que Metrics Accelerator es una aplicación Mule y, como tal, la podemos ejecutar desde cualquier entorno o modelo de despliegue soportado por MuleSoft.El runtime de Mule es siempre el mismo independientemente de que este runtime este corriendo on prem, en CloudHub o en un Runtime Fabric. Incluso desde AnyPoint Studio, como hemos hecho la prueba, aunque esto obviamente es solo para tests.

Como veis, solo lanzando la app y sin modificar nada en la app, ya disponemos de muchas métricas. Por eso, Metrics Accelerator es un muy buen punto de partida para todos aquellos que estéis comenzando a definir KPIs y todavia no sepáis como recoger métricas. La aplicación, como decíamos, es Open Source, asi que la podemos adaptar a nuestras necesidades. En los próximos posts entraremos en detalle de cómo funciona Metrics Accelerator y las distintas opciones de configuración y visualización, para que le saquéis el máximo partido.
Previous Post Next Post