OpenWebinars

Herramientas

Descubre Micrometer Spring

Descubre que es Micrometer y como esta librería te permite monitorear tus aplicaciones basadas en JVM.

Angel Robledano

Angel Robledano

Product Manager

Lectura 3 minutos

Publicado el 15 de mayo de 2019

Compartir

Micrometer es una biblioteca de instrumentación de medidas para aplicaciones basadas en JVM (Java Virtual Machine), que proporciona un front simple sobre los clientes de instrumentación para los sistemas de supervisión más populares. Se encuentra diseñado para agregar una sobrecarga pequeña o nula en la actividad de recopilación de métricas mientras maximiza la portabilidad de su esfuerzo en ellas.

A pesar de su enfoque en las métricas dimensionales, Micrometer se correlaciona con nombres jerárquicos para continuar sirviendo soluciones de monitoreo más antiguas como Ganglia o herramientas de ámbito más cerrado como JMX. El cambio a Micrometer surgió del deseo de servir mejor a una ola de sistemas de monitoreo dimensional como Prometheus, Datadog, Wavefront, SignalFx, Influx.

Una de las ventajas de Spring es que habilita la elección a través de la abstracción, por tanto, al integrarse con Micrometer, Spring Boot le permite elegir uno o más sistemas de monitoreo, con diferentes vistas para proyectar sus resultados.
Con Micrometer podemos medir métricas y cuando hablamos de ellas nos referimos específicamente a la clase de información específica, que permite razonar sobre el rendimiento de un sistema en conjunto a través de diferentes componentes de una aplicación única, instancias de un clúster, clústeres que operan en diferentes entornos o regiones, entre otras.

Algunas métricas que podemos obtener son las siguientes:

  • JVM, informa la utilización de:
    — Varias agrupaciones de memoria y búfer.
    — Estadísticas relacionadas con la recolección de basura.
    — Uso de subprocesos.
    — Número de clases cargadas / descargadas.
  • Uso de CPU.
  • Latencias de solicitud Spring MVC y WebFlux.
  • Utilización del origen de datos, incluidas las métricas del grupo HikariCP.
  • Fábricas de conexión RabbitMQ.
  • Uso del descriptor de archivo.
  • Utilización de la caché.
  • Logback (registra el número de eventos registrados en Logback en cada nivel).
  • Tiempo de actividad: informe un indicador de tiempo de actividad y un indicador fijo que representa el tiempo de inicio absoluto de la aplicación
  • Uso de Tomcat.
  • Latencias de RestTemplate.

Es de gran importancia mencionar, que Spring Boot Actuator proporciona administración de dependencias y autoconfiguración para Micrometer, totalmente compatible con Spring Boot 2.0 / 1.x y Spring Framework 5.0 / 4.x. Las métricas de memoria JVM de la aplicación Spring se registran de forma automática.

Sistemas de monitoreo compatibles con Micrometer

Micrometer proporciona una API de recopilación de métricas neutral para el proveedor e implementaciones para una variedad de sistemas de monitoreo como front con el objetivo de permitirle instrumentar su código de la misma manera y poder visualizar los resultados en el sistema de monitoreo de la elección del desarrollador. Algunos sistemas compatibles son:

  • Netflix Atlas: es una base de datos en serie de tiempo dimensional en memoria con gráficos incorporados, un lenguaje de consulta basado en pila personalizado y operaciones matemáticas avanzadas.

Imagen 0 en Descubre Micrometer Spring

  • Ganglia: se originó a principios de la década de 2000 en la Universidad de California, Berkeley, este es un sistema de métricas jerárquicas antiguo que gozó de gran popularidad en la supervisión del sistema Linux y todavía está vigente en muchas organizaciones.

Imagen 1 en Descubre Micrometer Spring

  • Graphite: nace en Orbitz en el año 2006 y no fue hasta el 2008 que pasa a ser de origen abierto. Grafito (en español), es uno de los sistemas de métricas jerárquicas actuales más populares respaldados por una base de datos de tamaño fijo, similar en diseño y propósito a RRD.

Imagen 2 en Descubre Micrometer Spring

  • InfluxDB: permite el procesamiento de flujo en tiempo real y el almacenamiento de datos de series de tiempo, es compatible con la reducción de muestreo, el vencimiento automático y la eliminación de datos no deseados, así como la copia de seguridad y restauración.

  • New Relic Insights: es un SaaS (Software as a Service) con una interfaz de usuario completa y un lenguaje de consulta llamado NRQL el cual funciona con un modelo push.

Imagen 3 en Descubre Micrometer Spring

  • Prometheus: está diseñado para operar en un modelo de extracción, eliminando métricas de las instancias de aplicaciones periódicamente en función del descubrimiento de servicios, es una base de datos en serie de tiempo dimensional en memoria, con una interfaz de usuario incorporada simple, utiliza un lenguaje de consulta personalizado y operaciones matemáticas.

Imagen 4 en Descubre Micrometer Spring

  • Datadog: Micrometer admite métricas de envío a Datadog directamente a través de su API o a través de Dogstatsd mediante el registro de StatsD. Este es un SaaS (Software as a Service) de serie temporal dimensional con paneles incorporados y alertas.

  • SignalFx: es un sistema de monitoreo dimensional SaaS (Software as a Service) con una interfaz de usuario completa que opera en un modelo push, cuenta con un amplio conjunto de detectores de alerta.

Imagen 5 en Descubre Micrometer Spring

  • Wavefront: es una plataforma de monitoreo SaaS que permite visualizar, consultar y alertar sobre los datos de infraestructura, red, métricas de aplicaciones personalizadas, KPI de negocios, entre otros.

Imagen 6 en Descubre Micrometer Spring

Micrometer Spring, permite tener supervisión web sin mayor complejidad ya que esta se configura de forma automática para cada punto final en la aplicación, sin embargo puede ser administrado a través de la propiedad spring.metrics.web.autoTimeServerRequests. La implementación predeterminada proporciona cuatro dimensiones de métricas para puntos finales como lo son:

  • Método de solicitud HTTP.
  • Código de respuesta HTTP.
  • URI de punto final.
  • Información de excepción.

Por otra parte, existe una cantidad considerable de propiedades que son configurables para llevar el control de las medidas de exportación de comportamientos, es por ello que podemos hacer referencia a spring.metrics.atlas., la cual fue desarrollada por Netflix para administrar datos de series de tiempo dimensionales y obtener información operativa casi en tiempo real a través de la inteligencia operativa.

Atlas presenta almacenamiento de datos en memoria, permitiéndole recopilar e informar grandes cantidades de métricas rápidamente, para obtener mayor detalle en cuanto a las propiedades de configuración puedes ingresar en AtlasConfig.

Así mismo, Micrometer Spring, al abstraer y ser compatible con diversos sistemas de monitoreo bajo una semántica común, hace que el cambio entre diferentes plataformas de monitoreo sea bastante fácil y funcional para el estudio del comportamiento y toma de decisiones según sea el caso.

Aprende el motor de Spring para crear las mejores aplicaciones empresariales.

curso-spring-core-5

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Curso de Spring Core

Avanzado
4 h. y 7 min.

Aprende con el curso de Spring Core 5 a utilizar el motor de Spring para crear las mejores...

Luis Miguel López Magaña
4.4