SpringBoot2.x系列教程86--SpringBoot中整合监控功能

SpringBoot2.x系列教程86--SpringBoot中整合监控功能

作者:一一哥

一. SpringBoot监控功能

1. 监控功能简介

在之前的系列文章中我们学习了如何进行Spring Boot应用的功能开发,以及如何写单元测试、集成测试等,然而,在实际的软件开发中需要做的不仅如此:还包括对应用程序的监控和管理。

我们也需要实时看到自己的应用目前的运行情况,比如给定一个具体的时间,我们希望知道此时CPU的利用率、内存的利用率、数据库连接是否正常以及在给定时间段内有多少客户请求等指标。不仅如此,我们还希望通过图表、控制面板来展示上述信息。

我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等。

2. 实现步骤:

  • 引入spring-boot-starter-actuator;
  • 通过http方式访问监控端点;
  • 可进行shutdown(POST 提交,此端点默认关闭)。

3. 监控和管理端点:

4. 定制端点信息

  • 开启远程应用关闭功能: management.endpoint.shutdown.enabled=true

  • 开启所需端点: management.endpoint.beans.enabled=true

  • 定制端点访问根路径: management.endpoints.web.base-path=/manage

二. 具体实现步骤

1. 创建web项目

我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。

2. 添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

3. 添加配置信息

package com.yyg.boot.config;

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

/**
 * @Author 一一哥Sun
 * @Date Created in 2020/5/15
 * @Description Description
 */
@Component
public class MyHealthIndicator implements HealthIndicator {

    @Override
    public Health getHealth(boolean includeDetails) {
        return null;
    }

    @Override
    public Health health() {
        //自定义的检查方式
        Health.up().build(); //代表健康,服务没问题。
        //服务GG了
        Health.down().withDetail("message", "服务异常").build();
        return null;
    }

}

4. 创建入口类

package com.yyg.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @Author 一一哥Sun
 * @Date Created in 2020/5/15
 * @Description Description
 */
@SpringBootApplication
public class ActuatorApplication {

    public static void main(String[] args){
        SpringApplication.run(ActuatorApplication.class,args);
    }

}

5.创建application.yml配置文件

management:
  #security:
    #enabled: false
  endpoint:
    beans:
      enabled: true
    health:
      show-details: always
      enabled: true
    shutdown:
      enabled: true #开启关闭功能,默认关闭
  endpoints:
    web:
      base-path: "/actuator" #默认的访问路径
      exposure:
        #include: ["health","info"]
        include: "*"
        #exclude: "env,beans"

6. 启动项目进行测试

查看项目的健康状态。

查看项目中的beans信息。

查看项目的所有配置信息。

在postman中通过post请求方式,测试关闭项目功能。
 




 

一一哥Sun CSDN认证博客专家 Elasticsearch Java 架构
十年软件开发授课经验,专注大学生毕业设计及面试求职私塾式指导!对Android/JavaWeb/微服务/H5等技术领域有深入研究!曾任国内最大的智能物联网平台架构师,参与国内最大的智能物流系统平台天眼/冷链/订单/车次系统研发;曾主导国内首款国学教育App及后台架构;负责大庆油田采油管理系统,铝业云计算系统,湖南广电地面波机顶盒等项目的研发。目前担任某著名培训机构教学主管,培养了大批入职阿里,IBM,百度,国家电网等名企的高薪学生.本人坚持只有一心做教育,才能做一流教育的理念,被学生爱称为"一一哥"!QQ:2312119590,今日头条号:一一哥Sun;知乎ID:一一哥
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页