Introducción
Spring Boot Actuator es un subproyecto de Spring Boot que proporciona funcionalidades para monitorear y gestionar aplicaciones en producción. Actuator incluye una serie de endpoints que permiten obtener información sobre el estado de la aplicación, métricas, información del sistema, y más.
Objetivos del Tema
- Entender qué es Spring Boot Actuator y su propósito.
- Aprender a habilitar y configurar Actuator en una aplicación Spring Boot.
- Explorar los endpoints proporcionados por Actuator.
- Personalizar y asegurar los endpoints de Actuator.
¿Qué es Spring Boot Actuator?
Spring Boot Actuator proporciona un conjunto de herramientas para monitorear y gestionar aplicaciones Spring Boot. Estas herramientas incluyen endpoints que exponen información sobre el estado de la aplicación, métricas, información del sistema, y más.
Características Clave
- Endpoints de Monitoreo: Proporciona endpoints RESTful para monitorear y gestionar la aplicación.
- Métricas: Recopila y expone métricas de la aplicación.
- Salud de la Aplicación: Proporciona información sobre la salud de la aplicación.
- Información del Sistema: Exposición de detalles del sistema y la aplicación.
Habilitando Spring Boot Actuator
Para habilitar Actuator en tu aplicación Spring Boot, necesitas agregar la dependencia spring-boot-starter-actuator
en tu archivo pom.xml
(para proyectos Maven) o build.gradle
(para proyectos Gradle).
Maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Gradle
Configuración de Actuator
Una vez que Actuator está habilitado, puedes configurarlo en el archivo application.properties
o application.yml
.
Configuración Básica
Por defecto, Actuator expone varios endpoints en la ruta /actuator
. Puedes personalizar esta ruta y habilitar o deshabilitar endpoints específicos.
application.properties
application.yml
Endpoints de Actuator
Spring Boot Actuator proporciona varios endpoints útiles. Aquí hay una lista de algunos de los más comunes:
Endpoint | Descripción |
---|---|
/actuator/health |
Proporciona información sobre la salud de la aplicación. |
/actuator/info |
Proporciona información general sobre la aplicación. |
/actuator/metrics |
Proporciona métricas de la aplicación. |
/actuator/env |
Muestra las propiedades del entorno de la aplicación. |
/actuator/loggers |
Permite ver y modificar los niveles de registro de la aplicación. |
/actuator/threaddump |
Muestra un volcado de hilos de la JVM. |
/actuator/httptrace |
Muestra trazas HTTP recientes. |
Ejemplo de Uso de Endpoints
Verificar la Salud de la Aplicación
Obtener Información de la Aplicación
Personalización de Endpoints
Puedes personalizar los endpoints de Actuator para que se ajusten a tus necesidades específicas. Por ejemplo, puedes agregar información personalizada al endpoint /actuator/info
.
Agregar Información Personalizada al Endpoint /info
application.properties
info.app.name=Mi Aplicación info.app.description=Esta es una aplicación de ejemplo. info.app.version=1.0.0
application.yml
Seguridad de los Endpoints
Es importante asegurar los endpoints de Actuator, especialmente en entornos de producción. Puedes usar Spring Security para proteger estos endpoints.
Ejemplo de Configuración de Seguridad
application.properties
management.endpoints.web.exposure.include=health,info management.endpoint.health.show-details=always
Security Configuration
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/manage/health", "/manage/info").permitAll() .anyRequest().authenticated() .and() .httpBasic(); } }
Ejercicio Práctico
Ejercicio 1: Habilitar y Configurar Actuator
- Agrega la dependencia
spring-boot-starter-actuator
a tu proyecto. - Configura Actuator para exponer todos los endpoints en la ruta
/manage
. - Verifica la salud de la aplicación accediendo al endpoint
/manage/health
.
Solución
- Agrega la dependencia en
pom.xml
obuild.gradle
. - Configura
application.properties
oapplication.yml
:management.endpoints.web.base-path=/manage management.endpoints.web.exposure.include=*
- Ejecuta la aplicación y accede a
http://localhost:8080/manage/health
.
Conclusión
Spring Boot Actuator es una herramienta poderosa para monitorear y gestionar aplicaciones Spring Boot. Proporciona una serie de endpoints útiles que permiten obtener información sobre el estado de la aplicación, métricas, y más. Asegurar estos endpoints es crucial para proteger la información sensible en entornos de producción. Con Actuator, puedes tener una visión clara y detallada del comportamiento de tu aplicación, lo que facilita la gestión y el mantenimiento.
En el próximo tema, exploraremos los perfiles de Spring Boot y cómo pueden ayudarte a gestionar configuraciones específicas para diferentes entornos.
Curso de Spring Boot
Módulo 1: Introducción a Spring Boot
- ¿Qué es Spring Boot?
- Configuración de tu Entorno de Desarrollo
- Creando tu Primera Aplicación Spring Boot
- Entendiendo la Estructura del Proyecto Spring Boot
Módulo 2: Conceptos Básicos de Spring Boot
- Anotaciones de Spring Boot
- Inyección de Dependencias en Spring Boot
- Configuración de Spring Boot
- Propiedades de Spring Boot
Módulo 3: Construyendo Servicios Web RESTful
- Introducción a los Servicios Web RESTful
- Creando Controladores REST
- Manejo de Métodos HTTP
- Manejo de Excepciones en REST
Módulo 4: Acceso a Datos con Spring Boot
- Introducción a Spring Data JPA
- Configuración de Fuentes de Datos
- Creación de Entidades JPA
- Uso de Repositorios de Spring Data
- Métodos de Consulta en Spring Data JPA
Módulo 5: Seguridad en Spring Boot
- Introducción a Spring Security
- Configuración de Spring Security
- Autenticación y Autorización de Usuarios
- Implementación de Autenticación JWT
Módulo 6: Pruebas en Spring Boot
- Introducción a las Pruebas
- Pruebas Unitarias con JUnit
- Pruebas de Integración
- Simulación con Mockito
Módulo 7: Funciones Avanzadas de Spring Boot
Módulo 8: Despliegue de Aplicaciones Spring Boot
Módulo 9: Rendimiento y Monitoreo
- Ajuste de Rendimiento
- Monitoreo con Spring Boot Actuator
- Uso de Prometheus y Grafana
- Gestión de Registros y Logs