Utiliza Spring boot Actuator con Jersey para el mantenimiento de tus aplicaciones


Cuando creas una aplicación Spring boot utilizando Jersey en lugar de Spring MVC te darás cuenta que hay muchas cosas que no se integran de forma transparente, un ejemplo es cuando quieres utilizar Actuator para el monitoreo y mantenimiento de tus aplicaciones, en este ejemplo explicaremos paso a paso como habilitarlo sin romperte la cabeza. Se tomará como base el proyecto Spring Boot + REST Jersey Parte 1.

Paso 1: Agregar dependencias para el soporte de Actuator

El primer paso será agregar las dependencias necesarias para utilizar Actuator en tu aplicación.

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

Esto permitirá tener todas las clases necesarias para el monitoreo y mantenimiento de tu aplicación disponibles en el proyecto.

Paso 2: Modificar el context path de Jersey

Si estuvieras utilizando Spring MVC con lo anterior sería suficiente, pero Jersey utiliza el contexto raíz o ROOT context para desplegar los endpoints que se registren, por esto es necesario cambiar ese contexto raíz con la siguiente línea en la clase JerseyConfig.

/**
 *
 */
package com.raidentrance.config;

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;

import com.raidentrance.resource.UserResource;

/**
 * @author raidentrance
 *
 */
@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
	public JerseyConfig() {
		register(UserResource.class);
	}
}

Con esto, todos los endpoints que se registren, en este caso los definidos en UserResource se montarán dentro del contexto /api.

Paso 3: Probando la aplicación

El último paso será ejecutar nuestra aplicación y ver que todo esta funcionando, para ver la información de nuestro endpoint user accederemos a la dirección http://localhost:8080/api/users con la siguiente salida:

{
	username: "raidentrance"
}

Por último veamos algunos de los endpoints disponibles de el actuator service:

  • Health: Permite conocer la salud de la aplicación y puedes acceder a el en la siguiente url http://localhost:8080/health con la siguiente salida:
{
	status: "UP",
	diskSpace: {
		status: "UP",
		total: 499071844352,
		free: 373295026176,
		threshold: 10485760
	}
}
  • Metrics: Permite ver algunas métricas de tu aplicación y puedes acceder a el en la siguiente url http://localhost:8080/metrics con la siguiente salida:
{
   "mem": 462340,
   "mem.free": 172618,
   "processors": 8,
   "instance.uptime": 71209,
   "uptime": 195221,
   "systemload.average": 2.369629,
   "heap.committed": 403968,
   "heap.init": 262144,
   "heap.used": 231349,
   "heap": 3728384,
   "nonheap.committed": 59840,
   "nonheap.init": 2496,
   "nonheap.used": 58373,
   "nonheap": 0,
   "threads.peak": 16,
   "threads.daemon": 11,
   "threads.totalStarted": 97,
   "threads": 13,
   "classes": 6439,
   "classes.loaded": 6444,
   "classes.unloaded": 5,
   "gc.ps_scavenge.count": 13,
   "gc.ps_scavenge.time": 124,
   "gc.ps_marksweep.count": 6,
   "gc.ps_marksweep.time": 563,
   "httpsessions.max": -1,
   "httpsessions.active": 0
}

Para ver la lista completa de endpoints disponibles en el actuator ver el siguiente link.

Si te gusta el contenido y quieres enterarte cuando realicemos un post nuevo síguenos en nuestras redes sociales https://twitter.com/geeks_mx y https://www.facebook.com/geeksJavaMexico/.

Puedes encontrar el código completo en la siguiente url https://github.com/raidentrance/spring-boot-example/tree/part8-actuator.

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com

Anuncios

1 comentario »

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s