Spring Boot Actuator 是 Spring Boot 项目中的一个重要模块,它提供了一系列端点来监控和管理你的 Spring 应用。通过这些端点,你可以轻松地查看应用的运行状况、配置信息、健康状态以及各种性能指标。本文将深入探讨 Spring Boot Actuator 的功能、配置和使用方法。
Spring Boot Actuator 简介
Spring Boot Actuator 是一个基于 Spring Boot 的模块,它提供了一系列内建的端点来帮助开发者监控和管理 Spring 应用。这些端点允许你查看应用的运行状况、配置信息、健康状态以及各种性能指标。Actuator 可以帮助你快速发现和解决问题,提高应用的稳定性和可靠性。
安装 Actuator
要使用 Spring Boot Actuator,你需要在你的 Spring Boot 项目中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Actuator 端点
Spring Boot Actuator 提供了多种端点,以下是一些常用的端点及其功能:
/health
/health 端点提供了一个关于应用健康状况的概述。它返回一个 JSON 对象,其中包含应用的各项指标,例如是否处于服务状态、数据库连接是否正常等。
{
"status": "UP",
"details": {
"diskSpace": {
"total": 49974648192,
"free": 24981291584,
"used": 25093356508,
"available": 24981291584,
"threshold": 104857600,
"details": {
"total": "468.1 GB",
"free": "234.5 GB",
"used": "25.0 GB",
"available": "234.5 GB",
"threshold": "100.0 MB"
}
},
"database": {
"status": "UP"
},
"cache": {
"status": "UP"
},
"info": {
"application": "myapp",
"version": "1.0.0",
"timestamp": "2023-04-01T14:20:07.596+0000",
"details": {
"my.custom.info": "Some value"
}
}
}
}
/metrics
/metrics 端点提供了一个关于应用性能指标的详细报告,包括内存使用情况、线程信息、HTTP 请求统计等。
{
"count": 0,
" gauge": {
"jvm.memory.max": 1073741824,
"jvm.memory.committed": 1073741824,
"jvm.memory.used": 921626464,
"jvm.memory.free": 152018816,
"jvm.memory.nonHeapMax": 0,
"jvm.memory.nonHeapCommitted": 0,
"jvm.memory.nonHeapUsed": 0,
"jvm.memory.pools": {
"heap": {
"max": 1073741824,
"used": 921626464,
"committed": 1073741824,
"free": 152018816
},
"nonheap": {
"max": 0,
"used": 0,
"committed": 0,
"free": 0
}
},
"jvm.threads": {
"count": 50,
"peak": 50,
"daemon": 10,
"totalStarted": 50,
"threadStates": {
"RUNNABLE": 0,
"TIMED_WAITING": 0,
"WAITING": 0,
"TERMINATED": 0,
"NEW": 0,
"BLOCKED": 0
}
},
"http.server.requests": {
"count": 0,
"m1": 0,
"m5": 0,
"m15": 0,
"m30": 0,
"m60": 0
}
},
"timer": {
"http.server.request": {
"count": 0,
"max": 0,
"mean": 0,
"min": 0,
"stddev": 0
}
}
}
/info
/info 端点允许你自定义应用的元数据,这些元数据可以用于提供有关应用的信息,例如版本、构建时间等。
{
"application": {
"name": "myapp",
"version": "1.0.0",
"description": "My Spring Boot application",
"build": {
"time": "2023-04-01T14:20:07.596+0000",
"version": "1.0.0",
"number": "20230401142007"
}
}
}
配置 Actuator
要启用 Actuator 端点,你需要在 application.properties 或 application.yml 文件中添加以下配置:
management.endpoints.web.exposure.include=health,info,metrics
或者
management:
endpoints:
web:
exposure:
include: health,info,metrics
这样,你就可以通过访问 /actuator/health、/actuator/info 和 /actuator/metrics 端点来获取相应的信息了。
总结
Spring Boot Actuator 是一个强大的工具,可以帮助你轻松监控和管理你的 Spring 应用。通过使用 Actuator 提供的端点,你可以快速了解应用的运行状况、配置信息、健康状态以及各种性能指标。掌握 Actuator 的使用方法,将有助于你提高应用的稳定性和可靠性。