spring-boot-actuator监控模块

文章 未结 精帖 0 326
无法显示用户头像
admin 5 钻石
2018-03-14 10:29:01
img[http://newecode1024.oss-cn-hongkong.aliyuncs.com/4a148049-d408-495d-8540-e7818e454c34.jpg]  1. spring-boot 有以下几点主要优势: [pre] 1).简化依赖管理 2).自动化配置 3).嵌入式容器 4).生产级的监控端点:生产环境中,需要实时或定期监控服务的可用性 [/pre] 2. 下面对生产级的监控模块 spring-boot-actuator 进行分析讨论。 1)、新建 spring-boot 示例项目(我使用的是最新版本2.0.0),这里不再赘述创建过程,之前的这篇文章已有详细描述:  a(http://www.xinke.org.cn/article/detail/42)[http://www.xinke.org.cn/article/detail/42]  2)、pom.xml 文件添加 web 和 actuator 模块依赖,web 依赖可以通过 http 接口访问 spring-boot 的监控端点,actuator 依赖则是使用 spring-boot-actuator 监控模块的必须依赖,依赖配置如下: [pre] <!-- web支持 --> <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 生产级监控端点:生产环境中,需要实时或定期监控服务的可用性 --> <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-actuator</artifactId> </dependency> [/pre] 3)、核心配置文件 application.properties 中配置监控属性,简单如下配置: [pre] # 配置监控端口 management.server.port=54001 # 可以去掉某项的监控,比如去掉对 health.mail 模块的监控 management.health.mail.enabled=false # 表示可以以远程图形化界面的方式关闭服务,由于危险系数较高,所以一般不会开启 management.endpoint.shutdown.enabled=true # 定义 /actuator/info 接口的返回信息,主要是标识应用程序的一些属性,可以自定义,但必须以 info 开头 info.app.name=spring-boot-acuator-demo info.app.version=V0.0.1 [/pre] 4)、额外的还可以在 spring-boot主程序类中自定义 /actuator/health 接口的返回结果,需要实现 HealthIndicator 接口,重写 health 方法,完整主程序类如下代码: [pre] @SpringBootApplication @EnableScheduling public class DemoApplication implements HealthIndicator {   private static Logger LOGGER = LoggerFactory.getLogger(DemoApplication.class);   public static void main(String[] args) {     SpringApplication.run(DemoApplication.class, args);     LOGGER.info("My spring-boot project is running...");   }   /**    * 在/health接口调用的时候,    * 返回多一个属性:"mySpringBootApplication":{"status":"UP","h-key":"h-value"}    */   @Override   public Health health() {     return Health.up().withDetail("h-key", "h-value").build();   } } [/pre] 5)、启动 spring-boot 程序后,我们可以发现控制台多了3条接口映射访问路径如下: [pre] {[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]} {[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]} {[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]} [/pre] 第一个 /actuator/health 是spring-boot 应用的监控状态访问接口,在 spring-boot 2.0.0 之前的版本接口可能是 /health; 第二个 /actuator/info 是spring-boot 自定义应用程序信息访问接口,在 spring-boot 2.0.0 之前的版本接口可能是 /info; 第三个可以不用管,是其他两个接口的映射前缀。 6)、接着就可以根据配置的监控端口来访问: http://localhost:54001/actuator/health http://localhost:54001/actuator/info github完整项目代码: a(https://github.com/EnjoyLifeXK/spring-boot-actuator)[https://github.com/EnjoyLifeXK/spring-boot-actuator] 
回复
  • 暂无任何回复,抢个沙发吧~~