一、监控管理
通过引入 spring-boot-starter-actuator ,可以使用SpringBoot为我们提供准生产环境下的应用监控和管理功能。我们可以通过HTTP、JMX、SSH协议来进行操作,自动得到审计、健康及指标信息等
1. 步骤:
- 引入 spring-boot-starter-actuator
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> - 通过http方式访问监控端点
management: endpoints: #开启所有 endpoint 默认为true enabled-by-default: true web: exposure: # 端点默认情况下仅仅/health可以直接访问,其他endpoint是不可见的,这里我们把他设置为“*”,意思是全部可见,当让也可以单独设置是否可见 include: "*" # 修改默认访问endpoint的路径 base-path: /abc endpoint: # 远程关闭 shutdown 默认是关闭状态的,我们可以将它打开,通过post请求可以实现远程关闭应用 shutdown: enabled: true # endpoint的服务端口,默认和web是相同的端口,也可以单独配置 server: port: 8181 - 可以进行shutdown(POST提交,此端点默认关闭)
2. endpoints:
| ID | Description |
|---|---|
| auditevents | 暴露出当前应用的一些审计信息. 需要一个@Bean AuditEventRepository 才可以生效 |
| beans | 显示出当前应用程序的完整的Bean列表 |
| caches | 暴露出可以使用的Cache |
| conditions | 显示出一些可评估的配置,自动配置类和他们的匹配条件 |
| configprops | 显示出所有@ConfigurationProperties注解下的配置的集合 |
| env | 暴露出一些spring的执行参数 |
| flyway | 显示出数据库的转移路线。 需要一个或者多个 beans.Flyway 才生效 |
| health | 显示应用的健康信息 |
| httptrace | 显示http的追踪信息 (默认显示最新100个路由请求). 需要一个 bean.HttpTraceRepository 才生效 |
| info | 显示自定义程序信息 |
| integrationgraph | 显示spring的一些整合图. 需要.spring-integration-core 的相关依赖 |
| loggers | 显示和更新一些关于logger的配置 |
| liquibase | 显示提供的数据流信息,需要一个或者多个Liquibase 的Bean |
| metrics | 显示当前应用的一些指标信息 |
| mappings | 显示所有的使用@RequestMapping 注解的路径信息 |
| quartz | 显示一些Quartz 调度器job的信息. |
| scheduledtasks | 显示当前应用的调度任务信息 |
| sessions | 允许从Session-backed 检索和删除一些用户session,对使用了spring-session的sevelet的web容器才生效 |
| shutdown | 让应用可以优雅的关闭,默认是关闭的 |
| startup | 显示了一些应用启动的过程信息 . 需要配置了ApplicationStartupSpringApplicationBufferingApplicationStartup 才生效 |
| threaddump | 显示了一些线程相关信息 |
| heapdump | 返回一个包含虚拟机参数的格式化文件 |
| jolokia | 在Jolokia 存在环境变量中时会暴露出JMX相关的bean信息. 需要 jolokia-core 相关依赖 |
| logfile | 返回日志文件的内容 (在日志文件配置情况下).支持使用HTTP 头信息去改变日志文件的部分内容 |
| prometheus | 显示一些可以被Prometheus服务器识别的一些格式化信息,但是需要依赖micrometer-registry-prometheus |
二、自定义HealthIndicators
@Component
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
int errorCode = check();
if (errorCode != 0) {
return Health.down().withDetail("Error Code", errorCode).build();
}
return Health.up().build();
}
private int check() {
// perform some specific health check
return ...
}
}
本文介绍了如何在Spring Boot应用中集成actuator组件,实现监控管理,包括启用endpoints、设置访问权限,并演示如何自定义HealthIndicators。重点讲解了健康检查和HTTP端点的配置,适合开发者理解和实践生产环境监控。
3872

被折叠的 条评论
为什么被折叠?



