使用
代码语言:javascript复制<dependencies>
<!--actuator-->
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-actuator </artifactId>
</dependency>
<!--web访问功能-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
依赖
代码语言:javascript复制配置application.yaml
server:
port: 8080
servlet:
context-path: /example
# 配置登录用户名和密码
spring:
security:
user:
name: tl
password: tl
management:
# 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离
server:
port: 8090
servlet:
context-path: /sys
# 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况
endpoint:
health:
show-details: always
# 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点
endpoints:
web:
exposure:
include: '*'
- 通过浏览器访问即可 通过浏览器访问不同的Endpoints,可显示不同的监控内容,例如:访问
{
"status":"UP",
"components":{
"diskSpace":{
"status":"UP",
"details":{
"total":248575422464,
"free":211287887872,
"threshold":10485760,
"exists":true
}
},
"ping":{
"status":"UP"
}
}
}
Endpoints
Actuator创建了所谓的endpoint来暴露HTTP或者JMX来监控和管理应用。例如,/health
的endpoint,提供基本的应用程序健康信。。/beans
展示了所有 Spring 管理的Bean,metrics
展示JVM内存使用情况、系统CPU使用情况、打开的文件等等。/loggers
endpoint展示了应用的日志和可以让你在运行时改变日志等级。
请求时其中端点的 ID 和前缀/actuator
被映射到 URL。例如,默认情况下,health
端点映射到 /actuator/health
ID | 描述 | 默认启用 |
---|---|---|
auditevents | 公开当前应用程序的审计事件信息。 | 是的 |
beans | 显示应用程序中所有 Spring bean 的完整列表。 | 是的 |
conditions | 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 | 是的 |
configprops | 显示所有 的整理列表@ConfigurationProperties。 | 是的 |
env | 从 Spring 的ConfigurableEnvironment. | 是的 |
flyway | 显示已应用的任何 Flyway 数据库迁移。 | 是的 |
health | 显示应用程序运行状况信息。 | 是的 |
httptrace | 显示 HTTP 跟踪信息(默认情况下,最后 100 个 HTTP 请求-响应交换)。 | 是的 |
info | 显示任意应用程序信息。 | 是的 |
loggers | 显示和修改应用程序中记录器的配置。 | 是的 |
liquibase | 显示已应用的任何 Liquibase 数据库迁移。 | 是的 |
metrics | 显示当前应用程序的“指标”信息。 | 是的 |
mappings | 显示所有@RequestMapping路径的整理列表。 | 是的 |
scheduledtasks | 显示应用程序中的计划任务。 | 是的 |
sessions | 允许从 Spring Session 支持的会话存储中检索和删除用户会话。使用 Spring Session 对反应式 Web 应用程序的支持时不可用。 | 是的 |
shutdown | 让应用程序正常关闭。 | 不 |
threaddump | 执行线程转储。 | 是的 |
如果应用程序是 Web 应用程序(Spring MVC、Spring WebFlux 或 Jersey),还可以使用以下附加端点:
ID | 描述 | 默认启用 |
---|---|---|
heapdump | 返回一个 GZip 压缩的hprof堆转储文件。 | 是的 |
jolokia | 通过 HTTP 公开 JMX bean(当 Jolokia 在类路径上时,不适用于 WebFlux)。 | 是的 |
logfile | 返回日志文件的内容(如果已设置logging.file或logging.path属性)。支持使用 HTTPRange头来检索日志文件的部分内容。 | 是的 |
prometheus | 以 Prometheus 服务器可以抓取的格式公开指标。 | 是的 |
Endpoints 启用
在默认情况下,启用了除shutdown
外的所有Endpoints,可以自行设置Endpoints的启用,使用如下格式
management.endpoint.<id>.enabled =true
暴露EndPoints
在默认情况下,内置Endpoints只暴露了health
和info
,可以在配置文件中设置需启用的端点actuator endpoint
- Http方式 ## 默认情况下management.endpoints.web.exposure.include=health,info## 设置"*"代表暴露所有可访问的端点management.endpoints.web.exposure.include=*## exclude可以设置不暴露的management.endpoints.web.exposure.exclude=
- JMX方式 ## 默认情况下management.endpoints.jmx.exposure.include=health,info## 设置"*"代表暴露所有可访问的端点management.endpoints.jmx.exposure.include=*## exclude可以设置不暴露的management.endpoints.jmx.exposure.include=。