Spring Boot Actuator:概述和入门

x33g5p2x  于2021-10-16 转载在 Spring  
字(2.4k)|赞(0)|评价(0)|浏览(116)

在此页面上,我们将讨论 Spring Boot 执行器概述以及如何集成/开始使用它。

1. 概述

Spring Boot Actuator 是生产就绪的 Spring Boot 子模块/项目,用于监控 Spring Boot 应用程序的健康状况、性能、运行进程等。它提供了访问应用程序信息的预定义端点的数量。我们可以使用 HTTPJMX 端点来管理和监控应用程序。
执行器的定义

执行器是一个制造术语,指的是用于移动或控制某物的机械装置。执行器可以从一个小的变化中产生大量的运动。

资料来源:docs.spring.io

1.1 特点

Spring Boot Actuator 具有用于生产就绪应用程序的三个主要功能:

  1. 审计
  2. 健康/终点
  3. 指标

并且这些功能会自动应用于您的应用程序。

2. 入门

要在您的应用程序中启用 Spring Boot Actuator 功能,您只需要添加 spring-boot-starter-actuator 依赖项。

要将执行器添加到基于 Maven 的项目,请添加以下 ‘Starter’ 依赖项:

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

对于 Gradle,请使用以下声明:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-actuator")
}

通过添加上面的依赖,我们就完成了☺

2.1 创建项目

要测试 Spring Boot Actuator 功能,您需要创建一个全新的 Spring Boot 项目并添加所有必需的依赖项,确保已添加 spring-boot-starter-actuator 依赖项。

2.2 内置端点

好吧,通过添加 spring-boot-starter-actuator 依赖项,一堆内置端点会自动添加到您的应用程序中。例如:

  • health – 显示应用程序健康信息。
  • info – 显示任意应用程序信息。
  • env – 从 Spring 的 ConfigurableEnvironment 公开属性。
  • metrics – 显示当前应用程序的“指标”信息。
  • mappings – 显示所有 @RequestMapping 路径的整理列表。
  • 还有更多,请查看所有端点
    笔记:
  1. 带有前缀 /actuator 的所有端点都映射到一个 URL。例如,默认情况下,health 端点映射到 /actuator/health
  2. 出于安全原因,除了健康和信息之外,所有端点都被禁止直接访问。因为所有端点都显示应用程序的敏感信息。

2.3 执行器配置

Spring Boot Actuator 配置属性可以通过 application.properties 文件进行配置/管理。当我们在应用程序中公开相同的端点或启用/禁用某些执行器端点或更改执行器将运行的端口时,这将有所帮助。
默认情况下,Spring Boot Actuator 在部署应用程序的同一端口上运行。

执行器配置属性键与管理说明。

application.properties

# Spring Boot Actuator Configuration

# Set port
management.server.port=9090

# Enable all endpoints to be accessed (bypassing the security)
management.endpoints.web.exposure.include=*

#Enable all except env and beans
management.endpoints.web.exposure.exclude=env,beans

并且有许多属性可用于在 Spring Boot 应用程序中配置执行器。

2.4 测试应用程序

在这里开始您全新创建的应用程序。

1./actuator/health

{
    "status": "UP"
}

2./actuator/loggers

{
    "levels": [
        "OFF",
        "ERROR",
        "WARN",
        "INFO",
        "DEBUG",
        "TRACE"
    ],
	...............
	...............
	...............
	...............
    "groups": {
        "web": {
            "configuredLevel": null,
            "members": [
                "org.springframework.core.codec",
                "org.springframework.http",
                "org.springframework.web",
                "org.springframework.boot.actuate.endpoint.web",
                "org.springframework.boot.web.servlet.ServletContextInitializerBeans"
            ]
        },
        "sql": {
            "configuredLevel": null,
            "members": [
                "org.springframework.jdbc.core",
                "org.hibernate.SQL",
                "org.jooq.tools.LoggerListener"
            ]
        }
    }
}

你可以在浏览器中尝试

相关文章