欢迎光临
我们一直在努力

spring-boot-starter-actuator 各端点解释

作为个人站长,将 Spring Boot 应用部署到公有云虚拟机或 VPS 上后,最重要的事情就是监控应用的状态、性能和配置。Spring Boot Actuator 就是实现这一目标的神器。

spring-boot-starter-actuator 提供了一系列生产级别的端点(Endpoints),允许你通过 HTTP 或 JMX 接口获取应用程序的内部信息,例如健康状况、度量指标、环境配置等。掌握这些端点是运维 Spring Boot 应用的基础。

第一步:引入 Actuator 依赖

要使用 Actuator,你需要将相应的 starter 依赖添加到你的 pom.xml 文件中:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 通常我们也会依赖 web,确保可以通过 HTTP 访问 Actuator 端点 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

第二步:配置 Actuator 端点暴露

出于安全考虑,Spring Boot 默认只暴露 /health/info 两个端点。如果你希望在 VPS 上进行深度调试和监控,你需要修改 application.propertiesapplication.yml 来暴露更多的端点。

注意: 生产环境中,强烈建议仅在受保护的网络或通过安全验证后暴露这些端点。

application.properties 配置示例

要暴露所有端点,使用星号 *****:

# 启用所有端点(仅用于开发或安全内网环境!)
management.endpoints.web.exposure.include=*

# 默认路径是 /actuator,你也可以修改它
# management.endpoints.web.base-path=/monitor

第三步:核心 Actuator 端点详解与实操

假设你的 Spring Boot 应用运行在 http://localhost:8080 上,Actuator 接口默认为 http://localhost:8080/actuator/

1. /health – 应用程序健康检查

用途: 这是最常用的端点,用于检查应用程序的运行状态、数据库连接状态、磁盘空间等。对于负载均衡器判断实例是否存活至关重要。

# 检查整体健康状态
curl http://localhost:8080/actuator/health

# 示例输出 (状态 UP 代表正常)
# {"status":"UP","components":{"db":{"status":"UP","details":{...}},"diskSpace":{"status":"UP","details":{...}},"ping":{"status":"UP"}}}

2. /info – 应用信息展示

用途: 显示应用程序的任意自定义信息。通常用于展示构建版本号、Git 提交信息或许可证信息,方便快速识别当前部署的版本。

你可以在 application.properties 中添加自定义信息:

info.app.name=My-Website-Service
info.app.version=1.0.1-RELEASE
curl http://localhost:8080/actuator/info

3. /metrics – 性能度量指标

用途: 提供了 JVM、CPU、内存、HTTP 请求计数、数据库连接池等详细的性能数据。这是性能调优和故障排除的关键。

首先,请求 /metrics 查看所有可用的指标名称:

curl http://localhost:8080/actuator/metrics

然后,查询特定的指标,例如 JVM 内存使用量:

# 查询 JVM 已使用的内存量
curl http://localhost:8080/actuator/metrics/jvm.memory.used

# 查询 HTTP 请求总数(例如 /actuator 路径的请求数)
curl http://localhost:8080/actuator/metrics/http.server.requests

4. /env – 环境属性信息

用途: 查看 Spring 环境变量、系统属性、命令行参数以及 application.properties 中加载的配置信息。在部署或配置出现问题时,这个端点是极好的排查工具。

# 查看所有环境信息
curl http://localhost:8080/actuator/env

# 查看特定属性(例如服务器端口)
curl http://localhost:8080/actuator/env/server.port

5. /loggers – 动态修改日志级别

用途: 无需重启应用,即可实时调整特定包或类的日志级别(例如从 INFO 调整到 DEBUG),这对在生产环境中临时定位问题非常有帮助。

实操:将特定包的日志级别临时调整为 DEBUG:

curl -X POST http://localhost:8080/actuator/loggers/com.mywebsite.controller -H "Content-Type: application/json" -d '{"configuredLevel": "DEBUG"}'

通过 Actuator,站长可以远程、非侵入性地监控部署在 VPS 上的 Spring Boot 应用,确保其稳定运行和快速响应潜在的性能瓶颈。

【本站文章皆为原创,未经允许不得转载】:汤不热吧 » spring-boot-starter-actuator 各端点解释
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址