📅  最后修改于: 2021-01-11 05:07:16             🧑  作者: Mango
Spring Boot Actuator是Spring Boot Framework的子项目。它包括许多其他功能,可帮助我们监视和管理Spring Boot应用程序。它包含执行器端点(资源所在的位置)。我们可以使用HTTP和JMX端点来管理和监视Spring Boot应用程序。如果要在应用程序中获得生产就绪的功能,则应使用Spring Boot执行器。
Spring Boot执行器具有三个主要功能:
端点:执行器端点使我们可以监视应用程序并与之交互。 Spring Boot提供了许多内置端点。我们也可以创建自己的端点。我们可以分别启用和禁用每个端点。大多数应用程序选择HTTP ,其中终结点的ID与/ actuator的前缀一起映射到URL。
例如, / health端点提供应用程序的基本健康信息。执行器默认情况下将其映射到/ actuator / health 。
度量: Spring Boot Actuator通过与千分尺集成来提供尺寸度量。千分尺已集成到Spring Boot中。它是工具库,用于支持从Spring交付应用程序指标。它使用维度数据模型为计时器,仪表,计数器,分布汇总和长任务计时器提供与供应商无关的接口。
审计: Spring Boot提供了一个灵活的审计框架,该框架将事件发布到AuditEventRepository。如果正在执行spring-security,它将自动发布身份验证事件。
我们可以通过将依赖项spring-boot-starter-actuator注入pom.xml文件来启用执行器。
org.springframework.boot
spring-boot-starter-actuator
2.2.2.RELEASE
执行器端点使我们可以监视Spring Boot应用程序并与之交互。 Spring Boot包含许多内置端点,我们也可以在Spring Boot应用程序中添加自定义端点。
下表描述了广泛使用的端点。
Id | Usage | Default |
---|---|---|
actuator | It provides a hypermedia-based discovery page for the other endpoints. It requires Spring HATEOAS to be on the classpath. | True |
auditevents | It exposes audit events information for the current application. | True |
autoconfig | It is used to display an auto-configuration report showing all auto-configuration candidates and the reason why they ‘were’ or ‘were not’ applied. | True |
beans | It is used to display a complete list of all the Spring beans in your application. | True |
configprops | It is used to display a collated list of all @ConfigurationProperties. | True |
dump | It is used to perform a thread dump. | True |
env | It is used to expose properties from Spring’s ConfigurableEnvironment. | True |
flyway | It is used to show any Flyway database migrations that have been applied. | True |
health | It is used to show application health information. | False |
info | It is used to display arbitrary application info. | False |
loggers | It is used to show and modify the configuration of loggers in the application. | True |
liquibase | It is used to show any Liquibase database migrations that have been applied. | True |
metrics | It is used to show metrics information for the current application. | True |
mappings | It is used to display a collated list of all @RequestMapping paths. | True |
shutdown | It is used to allow the application to be gracefully shutdown. | True |
trace | It is used to display trace information. | True |
对于Spring MVC,使用以下附加端点。
Id | Description | Default |
---|---|---|
docs | It is used to display documentation, including example requests and responses for the Actuator’s endpoints. | False |
heapdump | It is used to return a GZip compressed hprof heap dump file. | True |
jolokia | It is used to expose JMX beans over HTTP (when Jolokia is on the classpath). | True |
logfile | It is used to return the contents of the logfile. | True |
prometheus | It is used to expose metrics in a format that can be scraped by a prometheus server. It requires a dependency on micrometer-registry- prometheus. | True |
Spring Boot为所有执行器端点提供安全性。它使用基于表单的身份验证,该身份向用户提供用户ID和随机生成的密码。我们还可以通过为端点定制基本身份验证安全性来访问执行器受限的端点。我们需要通过management.security.roles属性覆盖此配置。例如:
management.security.enabled=true
management.security.roles=ADMIN
security.basic.enabled=true
security.user.name=admin
security.user.passowrd=admin
让我们通过示例了解执行器的概念。
步骤1:打开Spring Initializr https://start.spring.io/并创建一个Maven项目。
步骤2:提供群组名称。我们提供了com.javatpoint。
第3步:提供工件ID。我们提供了spring-boot-actuator-example例子。
步骤4:添加以下依赖项: Spring Web,Spring Boot Starter启动器和Spring Data Rest HAL Browser 。
步骤5:点击Generate(生成)按钮。当我们单击Generate按钮时,它将与项目相关的所有规范包装到Jar文件中,并将其下载到我们的本地系统。
步骤6:解压缩Jar文件并将其粘贴到STS工作区中。
步骤7:导入项目文件夹。
文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-actuator-example->完成
导入需要一些时间。导入项目后,我们可以在“包资源管理器”部分中看到项目目录。
步骤8:创建一个Controller类。我们创建了名为DemoRestController的控制器类。
DemoRestController.java
package com.javatpoint;
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文件,并通过添加以下语句禁用执行器的安全性功能。
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上运行。执行器启动后,我们可以看到通过HTTP公开的所有端点的列表。
让我们通过调用URL http:// localhost:8080 / actuator / health来调用运行状况端点。它表示状态UP 。这意味着该应用程序运行状况良好且正在运行,不会中断。
同样,我们可以调用其他端点来帮助我们监视和管理Spring Boot应用程序。