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.
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:
- Metrics Accelerator (II) - Tipos de Métricas
- Metrics Accelerator (III) - Modos de Ejecución
- Metrics Accelerator (IV) - Visualización en Splunk
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.
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.
- 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.
- 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?