SpringBoot-Actuator
SpringBoot-Actuator
cmyang1. 简介
spring-boot-actuator可以监控和管理基于Spring Boot的应用程序
https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/actuator.html
2. demo
在springboot项目中添加依赖
1 | <dependency> |
浏览器访问:
http://127.0.0.1:8080/actuator
1 | { |
management.endpoints.web.exposure.include=*
查看全部
3. 端点
Actuator 提供了一系列的端点(Endpoints),可以用于查看应用的内部状态、执行操作、收集应用的度量指标等。
例如:/actuator
:列出所有可用的端点/actuator/health
:显示应用的健康状态。通常会返回 “UP”(表示应用运行正常)或 “DOWN”(表示应用有问题)。
下表展示所有的端点,和默认是否公开
ID | 描述 | JMX | HTTP |
---|---|---|---|
auditevents | 公开当前应用程序的审计事件信息。需要一个AuditEventRepositorybean。 |
Yes | No |
beans | 显示应用程序中所有 Spring bean 的完整列表。 |
Yes | No |
caches | 公开可用的缓存。 | Yes | No |
conditions | 显示对配置和自动配置类进行评估的条件以及它们匹配或不匹配的原因。 | Yes | No |
configprops | 显示所有的整理列表@ConfigurationProperties。 | Yes | No |
env | 公开 Spring 的属性ConfigurableEnvironment。 | Yes | No |
flyway | 显示已应用的任何 Flyway 数据库迁移。需要一个或多个Flywaybean。 | Yes | No |
health | 显示应用程序健康信息。 | Yes | Yes |
httptrace | 显示 HTTP 跟踪信息(默认情况下,显示最后 100 个 HTTP 请求-响应交换)。需要一个HttpTraceRepositorybean。 | Yes | No |
info | 显示任意应用程序信息。 | Yes | No |
integrationgraph | 显示 Spring Integration 图。需要依赖spring-integration-core。 | Yes | No |
loggers | 显示和修改应用程序中日志的配置。 | Yes | No |
liquibase | 显示已应用的任何 Liquibase 数据库迁移。需要一个或多个Liquibasebean。 | Yes | No |
metrics | 显示当前应用程序的“指标”信息。 | Yes | No |
mappings | 显示所有路径的整理列表@RequestMapping。 | Yes | No |
quartz | 显示有关 Quartz Scheduler 作业的信息。 | Yes | No |
scheduledtasks | 显示应用程序中的计划任务。 | Yes | No |
sessions | 允许从 Spring Session 支持的会话存储中检索和删除用户会话。需要使用 Spring Session 的基于 servlet 的 Web 应用程序。 | Yes | No |
shutdown | 让应用程序正常关闭。仅在使用 jar 打包时有效。默认情况下禁用。 | Yes | No |
startup | 显示收集的启动步骤数据ApplicationStartup。需要 来SpringApplication配置BufferingApplicationStartup。 | Yes | No |
threaddump | 执行线程转储。 | Yes | No |
heapdump | 返回堆转储文件。在 HotSpot JVM 上,HPROF将返回 -format 文件。在 OpenJ9 JVM 上,PHD将返回 -format 文件。 | N/A | No |
jolokia | 当 Jolokia 位于类路径上时,通过 HTTP 公开 JMX bean(不适用于 WebFlux)。需要依赖jolokia-core。 | N/A | No |
logfile | 返回日志文件的内容(如果已设置logging.file.name或logging.file.path属性)。支持使用 HTTPRange标头检索日志文件的部分内容。 | N/A | No |
prometheus | 以 Prometheus 服务器可以抓取的格式公开指标。需要依赖micrometer-registry-prometheus。 | N/A | No |
启停端点management.endpoint.<id>.enabled=true/false
默认情况下,除shutdown
之外的所有端点都已启用。
设置默认是否启用
设置默认全部为禁用:management.endpoints.enabled-by-default=false
公开端点
由于 Endpoint 可能包含敏感信息,应该仔细考虑何时公开端点。
更改公开的端点,默认如下:management.endpoints.jmx.exposure.exclude=
management.endpoints.jmx.exposure.include=*
management.endpoints.web.exposure.exclude=
management.endpoints.web.exposure.include=health
可修改为management.endpoints.web.exposure.exclude=env,beans