spring-boot 性能监控

废话不多说,直接上干货

一、actuator

spring-boot自带性能监控,需要引入依赖包如下
  
	        org.springframework.boot  
	        spring-boot-starter-actuator  
	      

二、自定义Endpoint

继承AbstractEndpoint类,实现invoke方法,返回需要展示的性能信息。
构造函数必须传入一个指定的id,该id将作为访问路径的依据,比如自带的endpoint有health,metrics
构造函数必须传入sensitive变量,该变量建议为true,方便后面的安全管控
举个例子
public class RunTimeStatisticsEndpoint extends AbstractEndpoint> {

	public RunTimeStatisticsEndpoint() {
		super("runTime", true);
	}
	
	@Override
	public Map invoke() {
		return ControllerInfo.instance().getCache();
	}

}

三、安全

随时可以访问监控的性能指标,对于系统来说,这样不安全。解决办法是,可以结合spring-security来进行加密
引入依赖包如下
    
		  org.springframework.boot    
		  spring-boot-starter-security
		

加入以下配置
spring: 
  application: 
    name: myfee
  jackson: 
    serialization: 
      indent-output: true
    date-format: yyyy-MM-dd HH:mm:ss     
    time-zone: GMT+08

security:
  basic:
    enabled: true
    path: /xxx/admin
  user: 
    name: xxx
    password: xxx
    
management: 
  security: 
    role: SUPERUSER
    enabled: true
  port: 8888
  context-path: /xxx/admin

endpoints: 
  health: 
    sensitive: true   
    enabled: true
  metrics:  
    sensitive: true   
    enabled: true

其中设置了用户名,密码,对于admin这个路径才进行拦截。
值得说明的是,如果不设置端口号,那么将和项目的端口号一致,比如8080。
那么访问路径为http://ip:8080/项目contextPath/这里指定的context-path
也就是http://ip:8080/项目contextPath/xxx/admin
如果设置了端口号,比如这里的8888,那么访问路径变为http://ip:8888/这里指定的context-path
也就是http://ip:8888/xxx/admin

你可能感兴趣的:(java)