"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Una guía para principiantes sobre el uso del actuador Spring Boot

Una guía para principiantes sobre el uso del actuador Spring Boot

Publicado el 2024-08-06
Navegar:797

A Beginners Guide to Using Spring Boot Actuator

Spring Boot Actuator es un subproyecto de Spring Boot que proporciona funciones listas para producción para ayudarlo a monitorear y administrar su aplicación. Ofrece un conjunto de puntos finales integrados que le permiten obtener información sobre el estado, las métricas y el entorno de su aplicación, así como controlarla dinámicamente.

¿Qué es el actuador de arranque de resorte?

Spring Boot Actuator proporciona varios puntos finales listos para usar que se pueden usar para monitorear e interactuar con su aplicación. Se puede acceder a estos puntos finales a través de HTTP, JMX o mediante Spring Boot Admin.

Características clave del actuador de arranque de resorte

  1. Controles de estado: monitorea el estado de tu aplicación y sus dependencias.
  2. Métricas: recopila varias métricas, como uso de memoria, recolección de basura, detalles de solicitudes web, etc.
  3. Información del entorno: accede a las propiedades del entorno de la aplicación.
  4. Información de la aplicación: recupera información sobre la compilación de la aplicación, como la versión y el nombre.
  5. Niveles de registro dinámicos: cambia los niveles de registro sin reiniciar la aplicación.
  6. Seguimiento HTTP: seguimiento de solicitudes HTTP.

Configuración del actuador de arranque de resorte

1. Agregar dependencia del actuador

Para usar Actuator en su aplicación Spring Boot, debe agregar la dependencia de Actuator a su archivo pom.xml:

org.springframework.bootspring-boot-starter-actuator

Si estás usando Gradle, agrega lo siguiente a tu archivo build.gradle:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. Habilitación de puntos finales del actuador

De forma predeterminada, solo unos pocos puntos finales están habilitados. Puede habilitar puntos finales adicionales en su archivo application.yml:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # This exposes all available endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

Uso de puntos finales del actuador

Una vez configurado Actuator, puede acceder a los distintos puntos finales que proporciona. Estos son algunos puntos finales de uso común:

1. Punto final de salud

El punto final /actuator/health proporciona información sobre el estado de su aplicación:

GET http://localhost:8080/actuator/health

Ejemplo de respuesta:

{
  "status": "UP",
  "components": {
    "db": {
      "status": "UP",
      "details": {
        "database": "H2",
        "result": 1
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 499963174912,
        "free": 16989374464,
        "threshold": 10485760,
        "exists": true
      }
    }
  }
}

2. Punto final de métricas

El punto final /actuator/metrics proporciona varias métricas relacionadas con su aplicación:

GET http://localhost:8080/actuator/metrics

Ejemplo de respuesta:

{
  "names": [
    "jvm.memory.used",
    "jvm.gc.pause",
    "system.cpu.usage",
    "system.memory.usage",
    "http.server.requests"
  ]
}

Para obtener detalles de una métrica específica:

GET http://localhost:8080/actuator/metrics/jvm.memory.used

Ejemplo de respuesta:

{
  "name": "jvm.memory.used",
  "description": "The amount of used memory",
  "baseUnit": "bytes",
  "measurements": [
    {
      "statistic": "VALUE",
      "value": 5.1234567E7
    }
  ],
  "availableTags": [
    {
      "tag": "area",
      "values": [
        "heap",
        "nonheap"
      ]
    },
    {
      "tag": "id",
      "values": [
        "PS Eden Space",
        "PS Survivor Space",
        "PS Old Gen",
        "Metaspace",
        "Compressed Class Space"
      ]
    }
  ]
}

3. Punto final del entorno

El punto final /actuator/env proporciona información sobre las propiedades del entorno:

GET http://localhost:8080/actuator/env

Ejemplo de respuesta:

{
  "activeProfiles": [],
  "propertySources": [
    {
      "name": "systemProperties",
      "properties": {
        "java.runtime.name": {
          "value": "Java(TM) SE Runtime Environment"
        },
        "java.vm.version": {
          "value": "25.181-b13"
        }
      }
    },
    {
      "name": "systemEnvironment",
      "properties": {
        "PATH": {
          "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "HOME": {
          "value": "/root"
        }
      }
    }
  ]
}

4. Punto final de información

El punto final /actuator/info proporciona información sobre la aplicación:

GET http://localhost:8080/actuator/info

Para personalizar la información, agregue propiedades en su application.yml:

info:
  app:
    name: My Spring Boot Application
    description: This is a sample Spring Boot application
    version: 1.0.0

Protección de los puntos finales del actuador

De forma predeterminada, se puede acceder a todos los puntos finales del Actuator sin autenticación. Para proteger estos puntos finales, puede utilizar Spring Security. Agregue la dependencia de Spring Security a su pom.xml:

org.springframework.bootspring-boot-starter-security

Actualiza tu archivo application.yml para restringir el acceso:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # Expose all endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

spring:
  security:
    user:
      name: admin  # Default username
      password: admin  # Default password

# Restrict actuator endpoints to authenticated users
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
  security:
    enabled: true
    roles: ACTUATOR

Crear una clase de configuración de seguridad para configurar la seguridad HTTP:

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("/actuator/**").hasRole("ACTUATOR")
                .anyRequest().authenticated()
            .and()
            .httpBasic();
    }
}

Con esta configuración, solo los usuarios autenticados con el rol de ACTUADOR pueden acceder a los puntos finales del Actuador.

Personalización de los puntos finales del actuador

Puede crear puntos finales de Actuator personalizados para exponer información adicional o funcionalidad específica de su aplicación. A continuación se muestra un ejemplo de cómo crear un punto final personalizado:

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Endpoint(id = "custom")
@Component
public class CustomEndpoint {

    @ReadOperation
    public String customEndpoint() {
        return "Custom Actuator Endpoint";
    }
}

Acceda a su punto final personalizado en:

GET http://localhost:8080/actuator/custom

Conclusión

Spring Boot Actuator proporciona un sólido conjunto de herramientas para ayudarlo a monitorear y administrar su aplicación. Al aprovechar sus puntos finales integrados y la capacidad de crear puntos finales personalizados, puede obtener información valiosa sobre el rendimiento y el estado de su aplicación. Proteja estos puntos finales con Spring Security para garantizar que solo los usuarios autorizados tengan acceso y tendrá una aplicación lista para producción que sea fácil de administrar y monitorear.

Actuator es una parte esencial de cualquier aplicación Spring Boot, lo que le permite estar al tanto del entorno de ejecución de su aplicación y responder rápidamente a los problemas que surjan. Comience a utilizar Spring Boot Actuator hoy para mejorar la observabilidad y las capacidades operativas de su aplicación.

Declaración de liberación Este artículo se reproduce en: https://dev.to/isaactony/a-beginners-guide-to-using-spring-boot-actuator-5g3n?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3