Metrics
¿Cómo le gustaría saber cosas como cuántas veces se ha llamado a un servicio, o cuántas ejecuciones simultáneas tiene un servicio en este momento, o cuánto tiempo tarda en ejecutarse un comando?
El módulo MicroProfile Metrics proporciona una forma simple y unificada de publicar esas y otras métricas que puede usar para monitorear el rendimiento de la aplicación. Se exportan en formato Prometheus, lo que significa que puede utilizar herramientas como los paneles de Prometheus o Grafana para mostrar los datos y las alertas.
Podemos obtener algunas métricas en nuestro código usando las anotaciones: @Counted
, @Timed
, @Metered
y @Gauge
. También podemos crear métricas personalizadas usando la anotación @Metric
y creando histogramas personalizados.
@Counted(name="StockService.getAll_counter") @Timed(name="StockService.getAll_timer") public List getAll(){ //some code here } @Timed public List getByStatus(String status){ //some code here } @Metered public Optional findById(String id){ //some code here }
Finalmente, podemos acceder al endpoint /metrics/application
para obtener todas las métricas expuestas por nuestra aplicación. http://localhost:8080/metrics/application