了解正在运行的SpringBoot
生产监控Actuator
Spring Boot包含许多其他功能,可帮助您在将应用程序推送到生产环境时监控和管理应用程序。您可以选择使用HTTP或JMX方式来管理和监视应用程序。审核,运行状况和指标收集也可以自动应用于您的应用程序。
依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
EndPoint
beans:显示应用程序中spring beans的完整列表
conditions:显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。
health:显示应用健康信息。
mappings:显示所有@RequestMapping
路径的整理列表。
shutdown:关闭应用。这里默认是关闭的。
threaddump:执行线程转储。
这里只列出部分,具体完整的可以查看springboot官方文档。
运行展示
使用actuator可以更快速的让我们知道自己应用现在运行的状况。
健康信息 health
health端点公开的信息取决于management.endpoint.health.show-details
属性,该属性可以使用以下值之一进行配置:
management.endpoint.health.show-details=never #永远不展示
management.endpoint.health.show-details=when-authorized #详细信息仅向授权用户展示
management.endpoint.health.show-details=always
目前有一些默认的health indicator - 用于收集健康信息。
DiskSpaceHealthIndicator:检查磁盘空间不足。
ElasticsearchHealthIndicator:检查Elasticsearch集群是否已启动。
RedisHealthIndicator:检查Redis服务器是否已启动。
DataSourceHealthIndicator:检查是否可以获得与DataSource的连接。
我们也可以自己定制自己的Health Indicator。
我们只需要实现HealthIndicator
接口即可。
我展示一个老师写的健康检查类。当数据库里没有coffee状态为down,当有coffee为up健康状态。
应用监控springboot admin
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
通过client端和server端。client会将actuator收集的信息交给server端。通过server端的admin,图形化方式展示给我们各种监控信息。
定制web容器的运行参数
springboot默认的嵌入容器是tomcat,当然我们也可以排包来使用jetty等容器。
我们可以使用server.tomcat.xxx
来配置tomcat的线程数、连接数等等。
当然我们亦可以通过编程方式配置~官方实例
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.setPort(9000);
factory.setSessionTimeout(10, TimeUnit.MINUTES);
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/notfound.html"));
return factory;
}