English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot Starter Actuator

SpringBoot ActuatorSí, es un subproyecto del framework Spring Boot. Incluye muchas otras funciones que nos ayudan a supervisar y gestionar aplicaciones de Spring Boot. Incluye puntos finales de Actuator (ubicación de los recursos). Podemos usar HTTP JMX Gestión y supervisión de aplicaciones de Spring Boot desde un punto final. Si desea obtener funciones listas para producción en su aplicación, debe usar S pring Boot Actuator。

Spring Boot Actuator功能

Spring Boot Actuator有 三个主要功能:

Endpoints Metrics Audit

Endpoint: Actuator端点使我们可以监视应用程序并与之交互。 Spring Boot提供了许多内置端点。我们也可以创建自己的端点。我们可以分别启用和禁用每个端点。大多数应用程序选择 HTTP ,该终结点的ID和 /actuator前缀映射到URL。

对于例如, /health 端点提供了应用程序的基本健康信息。 Actuator默认情况下将其映射到 /actuator/health

Metrics: Spring Boot Actuator通过与 千分尺集成来提供尺寸指标。千分尺已集成到Spring Boot中。它是工具库,用于支持从Spring交付应用程序指标。它为具有维度数据模型的 计时器,仪表,计数器,分配汇总长任务计时器提供了与供应商无关的界面。

Audit: Spring Boot提供了一个灵活的审核框架,该框架将事件发布到 AuditEventRepository。如果正在执行spring-security,它将自动发布身份验证事件。

启用Spring Boot Actuator

我们可以通过在pom.xml文件中注入依赖项 spring-boot-starter-actuator 来启用 Actuator。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

Spring Boot Actuator端点

Actuator端点允许我们监视Spring Boot应用程序并与之交互。 Spring Boot包含许多内置端点,我们还可以在Spring Boot应用程序中添加自定义端点。

下表描述了广泛使用的端点。

Id 用法por defecto
Actuator它为其他端点提供了一个基于超媒体的发现页面。它要求Spring HATEOAS位于类路径上。true
auditeventsPublica información de eventos de auditoría de la aplicación actual.true
autoconfigSe utiliza para mostrar un informe de configuración automática, que muestra todos los candidatos de configuración automática y las razones por las que se "aplican" o no se "aplican".true
beansSe utiliza para mostrar la lista completa de todos los Spring Bean en la aplicación.true
configpropsSe utiliza para mostrar una lista organizada de todas las @ConfigurationProperties.true
dumpSe utiliza para ejecutar un volcado de hilos.true
envSe utiliza para publicar propiedades desde el ConfigurableEnvironment de Spring.true
flywaySe utiliza para mostrar todas las migraciones de base de datos Flyway aplicadas.true
healthSe utiliza para mostrar información de estado de la aplicación.error
infoSe utiliza para mostrar información arbitraria de la aplicación.error
loggersSe utiliza para mostrar y modificar la configuración del registrador en la aplicación.true
liquibaseSe utiliza para mostrar todas las migraciones de base de datos Liquibase aplicadas.true
metricsSe utiliza para mostrar información de métricas de la aplicación actual.true
mappingsSe utiliza para mostrar una lista organizada de todas las rutas @RequestMapping.true
shutdownSe utiliza para permitir el cierre normal de la aplicación.true
traceSe utiliza para mostrar información de seguimiento.true

Para Spring MVC, se utilizan los siguientes puntos finales adicionales.

Iddescripciónpor defecto
docsSe utiliza para mostrar documentos, incluyendo solicitudes y respuestas de ejemplo de puntos finales de Actuator.error
heapdumpSe utiliza para devolver archivos de desmonte de pila comprimidos con GZip.true
jolokiaSe utiliza para publicar beans JMX a través de HTTP (cuando Jolokia está en la clasepath).true
logfileSe utiliza para devolver el contenido del archivo de registro.true
prometheusSe utiliza para publicar métricas en un formato que el servidor Prometheus pueda capturar. Requiere dependencia de micrómetro-Prometheus.true

propiedades de Spring Boot Actuator

Spring Boot proporciona seguridad para todos los puntos finales de Actuator. Usa basado en formularioautenticación, que proporciona ID de usuario como usuario, y proporcionar un contraseña. También podemos acceder a los puntos finales restringidos de Actuator personalizando la seguridad de autenticación básica de los puntos finales. Necesitamos pasar management.security.roles Atributo cubre esta configuración. Por ejemplo:

management.security.enabled=true
management.security.roles=ADMIN
security.basic.enabled=true
security.user.name=admin
security.user.passowrd=admin

弹簧启动 Actuator示例

让我们通过示例了解 Actuator的概念。

Paso1: 打开弹簧Initializr https://start.spring.io/并创建 Maven 项目。

Paso2: 提供 名称。我们提供了 com.w3codebox。

Paso3: 提供 工件 ID。我们提供了 spring-boot-actuator-example。

Paso4: 。添加以下依赖项: Spring Web,Spring Boot Starter Actuator Spring Data Rest HAL浏览器

Paso5: 单击 生成按钮。当我们单击"生成"按钮时,它将与项目相关的所有规范包装到 Jar 文件中,并将其下载到我们的本地系统中。

Paso6: 提取Jar文件并将其粘贴到STS工作区中。

Paso7: 导入项目文件夹。

文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-actuator-example- >完成

导入需要一些时间。导入项目后,我们可以在"包资源管理器"部分中看到项目目录。

Paso8: : 创建一个Controller类。我们已经创建了名为DemoRestController的控制器类。

DemoRestController.java

package com.w3codebox;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoRestController 
{
@GetMapping("/hello)
public String hello() 
{
return "Hello User!";
}
}

Paso9: 打开 application.properties 文件,并通过添加以下语句来禁用 Actuator的安全性功能。

application.properties

management.security.enabled=false

Paso10: Ejecutar SpringBootActuatorExampleApplication.java Archivo.

Paso11: Abra el navegador y llame a la URL http: //localhost: 8080/actuator. It returns the following page:

{"_links":{"self":{"href":"http://localhost:8080/actuator","templated":false},"health":{"href":"http://localhost:8080/actuator/health","templated":false},"health-path":{"href":"http://localhost:8080/actuator/health/{*path}","templated":true},"info":{"href":"http://localhost:8080/actuator/info","templated":false}}}

Por defecto, la aplicación se ejecuta en el puerto8080 después de que el Actuator se inicie, podemos ver la lista de todos los puntos de extremidad publicados a través de HTTP.

Vamos a llamar a la URL http: //localhost: 8080/para llamar health Puntos de extremidad. Actuator/Estado de salud. Esto indica el estado UP 。这表示该应用程序运行正常,并且运行正常。

Del mismo modo, podemos llamar a otros puntos para ayudarnos a supervisar y administrar aplicaciones de Spring Boot.