SpringBoot重点详解--使⽤Actuator进⾏健康监控
⽬录
Actuator是Springboot提供的⽤来对应⽤系统进⾏⾃省和监控的功能模块,借助于Actuator开发者可以很⽅便地对应⽤系统某些监控指标进⾏查看、统计等。本⽂将通过⽰例来对如何在Springboot中使⽤Actuator监控做⼀个简单介绍,更多内容请移步。
添加依赖与配置
在Springboot中使⽤Actuator监控⾮常简单,只需要在⼯程POM⽂件中引⼊spring-boot-starter-actuator依赖即可。
<!-- 引⼊Actuator监控依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在本项⽬中,除了引⼊Actuator依赖之外还额外引⼊了JDBC依赖(⽤来对数据源健康状态进⾏⽰例)和WEB依赖(启⽤WEB⽅式查看监控信息),完整的依赖配置如下。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<!-- 添加MySQL依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 添加JDBC依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引⼊Actuator监控依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
同时,application.properties核⼼配置⽂件中除了定义数据源外,还需要添加 abled=false 配置。
>>>>>>>>>>>##
###  Actuator Monitor  --  Actuator configuration  ###
>>>>>>>>>>>##
abled=false
>>>>>>>>>>>##
###  Spring DataSource  -- DataSource configuration  ###
>>>>>>>>>>>##
spring.datasource.url=jdbc:mysql://localhost:3306/dev1?useUnicode=true&characterEncoding=utf8
spring.datasource.sql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
注意:若在核⼼配置⽂件中未添加 abled=false 配置,将会导致⽤户在访问部分监控地址时访问受限,报401未授权错误。
Actuator监控项
下表包含了Actuator提供的主要监控项。
下⾯逐个对每⼀个监控项进⾏举例介绍。
/autoconfig⽤来查看⾃动配置的使⽤情况,包括:哪些被应⽤、哪些未被应⽤以及它们未被应⽤的原因、哪些被排除。
/configprops可以显⽰⼀个所有@ConfigurationProperties的整理列表。
/beans可以显⽰Spring容器中管理的所有Bean的信息。
/dump⽤来查看应⽤所启动的所有线程,每个线程的监控内容如下图所⽰。
/env⽤来查看整个应⽤的配置信息,使⽤/env/[name]可以查看具体的配置项。
/health⽤来查看整个应⽤的健康状态,包括磁盘空间使⽤情况、数据库和缓存等的⼀些健康指标。
此外,Springboot还允许⽤户⾃定义健康指标,只需要定义⼀个类实现HealthIndicator接⼝,并将其纳⼊到Spring容器的管理之中。
@Component
public class MyHealthIndicator implements HealthIndicator{
@Override
public Health health() {
return Health.down().withDetail("error", "spring boot error").build();
}
}
/info可以显⽰配置⽂件中所有以info.开头或与Git相关的⼀些配置项的配置信息。
/mappings⽤来查看整个应⽤的URL地址映射信息。
/metrics⽤来查看⼀些监控的基本指标,也可以使⽤/metrics/[name]查看具体的指标。
此外,Springboot还为提供了CounterService和GaugeService两个Bean来供开发者使⽤,可以分别⽤来做计数和记录double 值。
@RestController
public class ActuatorController {
@Autowired
private CounterService counterService;
@Autowired
private GaugeService gaugeService;
@GetMapping("/home")
git使用详解public String home() {
//请求⼀次浏览数加1
counterService.increment("home browse count");
//请求时将app.version设置为1.0
gaugeService.submit("app.version", 1.0);
return "Actuator home";
}
}
/shutdown是⼀个POST请求,⽤来关闭应⽤,由于操作⽐较敏感,默认情况下该请求是被禁⽌的,若要开启需在配置⽂件中添加以下配置:
abled: true
/trace⽤来监控所有请求的追踪信息,包括:请求时间、请求头、响应头、响应耗时等信息。
Actuator监控管理
打开或关闭
Actuator监控的所有项⽬都定义在RELEASE.jar的org.springframework.dpoint包中,包含以下Endpoint。
这些Endpoint都继承⾃AbstractEndpoint,AbstractEndpoint中定义了两个重要的属性:enabled和sensitive。
其中,enabled⽤来打开或关闭该监控项,语法为:endpoints.[endpoint_name].enabled=false/true,以关闭/autoconfig监控项为例,其配置如下。
abled=false
sensitive⽤来配置该监控项是否属于敏感信息,访问敏感信息需要⽤户具有ACTUATOR⾓⾊权限,或者使⽤以下配置关闭安全限制。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论