SpringBoot Starter Actuator

SpringBoot Actuator是的子项目Spring Boot框架。它包括许多其他功能,可帮助我们监视和管理Spring Boot应用程序。它包含 Actuator端点(资源所在的位置)。我们可以使用 HTTP JMX 端点来管理和监视Spring Boot应用程序。如果要在应用程序中获得生产就绪的功能,则应使用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 用法默认
Actuator它为其他端点提供了一个基于超媒体的发现页面。它要求Spring HATEOAS位于类路径上。true
auditevents它公开了当前应用程序的审核事件信息。true
autoconfig它用于显示自动配置报告,该报告显示所有自动配置候选者以及应用它们"被"或"未被"的原因。true
beans它用于显示应用程序中所有Spring Bean的完整列表。true
configprops它用于显示所有@ConfigurationProperties的整理列表。true
dump它用于执行线程转储。true
env它用于从Spring的ConfigurableEnvironment中公开属性。true
flyway它用于显示已应用的所有Flyway数据库迁移。true
health它用于显示应用程序运行状况信息。错误
info它用于显示任意应用程序信息。错误
loggers它用于显示和修改应用程序中记录器的配置。true
liquibase它用于显示已应用的所有Liquibase数据库迁移。true
metrics它用于显示当前应用程序的指标信息。true
mappings它用于显示所有@RequestMapping路径的整理列表。true
shutdown它用于允许正常关闭应用程序。true
trace它用于显示跟踪信息。true

对于Spring MVC,使用了以下附加端点。

Id说明默认
docs它用于显示文档,包括对 Actuator端点的示例请求和响应。错误
heapdump它用于返回GZip压缩的hprof堆转储文件。true
jolokia它用于通过HTTP公开JMX bean(当Jolokia在类路径上时)。true
logfile它用于返回日志文件的内容。true
prometheus它用于以Prometheus服务器可以抓取的格式公开指标。它需要依赖千分尺-普罗米修斯。true

Spring Boot Actuator属性

Spring Boot为所有 Actuator端点提供安全性。它使用 基于表单的身份验证,该身份提供 用户ID 作为用户,并提供随机生成的 密码。我们还可以通过为端点定制基本身份验证安全性来访问 Actuator受限的端点。我们需要通过 management.security.roles 属性覆盖此配置。例如:

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

弹簧启动 Actuator示例

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

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

步骤2: 提供 名称。我们提供了 com.nhooo。

步骤3: 提供 工件 ID。我们提供了 spring-boot-actuator-example。

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

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

Spring Boot Starter Actuator

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

步骤7: 导入项目文件夹。

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

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

Spring Boot Starter Actuator

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

DemoRestController.java

package com.nhooo;
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!";
}
}

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

application.properties

management.security.enabled=false

步骤10: 运行 SpringBootActuatorExampleApplication.java 文件。

步骤11: 打开浏览器并调用URL http: //localhost: 8080/actuator。它返回以下页面:

{"_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}}}

默认情况下,该应用程序在端口8080上运行。 Actuator启动后,我们可以看到通过HTTP公开的所有端点的列表。

让我们通过调用URL http: //localhost: 8080/来调用 health 端点。 Actuator/健康状况。它表示状态 UP 。这表示该应用程序运行正常,并且运行正常。

Spring Boot Starter Actuator

同样,我们可以调用其他端点来帮助我们监视和管理Spring Boot应用程序。