spring-boot 性能监控

来源:互联网 发布:java vbs音量 编辑:程序博客网 时间:2024/06/05 08:26

废话不多说,直接上干货

一、actuator

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

二、自定义Endpoint

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

三、安全

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

加入以下配置
spring:   application:     name: myfee  jackson:     serialization:       indent-output: true    date-format: yyyy-MM-dd HH:mm:ss         time-zone: GMT+08security:  basic:    enabled: true    path: /xxx/admin  user:     name: xxx    password: xxx    management:   security:     role: SUPERUSER    enabled: true  port: 8888  context-path: /xxx/adminendpoints:   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

原创粉丝点击