SpringBoot入门系列篇(十六):actuator监控模块入门

actuator是SpringBoot提供的一个用于监控的模块,想要在SpringBoot中使用则需要引入该jar包:
<dependency>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-starter-actuatorartifactId>
dependency>
引入了actuator模块的jar包之后,就可以直接使用它提供的一系列监控接口了。它的接口主要分为三大类:应用配置类、度量指标类和操作控制类。
应用配置类的接口主要用于获取与应用相关的配置类型数据;
/autoconfig:获取应用的自动化配置报告,同时列出每个配置候选项是否满足自动化配置的各个先决条件,我们可以通过该接口来找到一些自动化配置没有生效的具体原因。该接口主要包含了两部分数据:
positiveMatches:返回的是条件匹配成功的自动化配置项
negativeMatches:返回的是条件匹配不成功的自动化配置项
/beans:该接口用于获取应用上下文中创建的所有Bean,每个bean的数据列表如下:
{
  bean: beanName,
  scope: singleton/...,
  type: beanType,
  resource: classPosition,
  dependencies: beanDependency
}
#dependencies为该bean中所需要自动注入的bean实例列表
/configprops:该接口用于获取应用中所有Properties对象的属性数据,返回的数据列表的格式如下:
propName:{
  prefix:属性的配置前缀,
  properties:各个属性的名称和值
}
/env:该接口用于获取应用中的所有环境属性报告,包括环境变量、JVM属性、应用的配置属性等等
/mappings:该接口用于获取应用上下文中的所有mapper实例数据报告,返回的数据列表的格式如下:
mapperName: {
    bean: mapperClassName,
    method:beanMapperMethod
}
#method属性标志了该映射关系的具体处理类和处理函数,一般的mapper类没有该属性值,这个值目前我也没搞懂
/info:该接口用于返回一些应用自定义的信息,默认情况下返回的是一个空的JSON格式数据,我们可以在application.properties配置文件中通过info前缀来设置一些自定义属性如:
info.app.name = spring-boot-testweb
info.app.time = now
然后调用/info接口就可以获取如下数据列表:
{
 "app": {
   "name": "spring-boot-testweb",
   "time": "now"
 }
}
度量指标类的接口主要用于获取内存、线程池等数据
/metrics:该接口返回当前应用的内存信息、线程信息、垃圾回收信息等,其中几个重要的数据如下:
mem.*:应用内存概要信息
heap.*:应用堆内存使用情况
nonheap.*:应用非堆内存使用情况
threads:线程使用情况
classes:应用加载和卸载的类统计
gc.*:垃圾收集的详细信息
httpsessions.*:tomcat容器的会话使用情况
gauge.*:HTTP请求的性能指标之一,主要反映一个绝对数值,表示对应的请求上一次的延迟时间
counter.*:HTTP请求的性能指标之一,用于对请求与对应的响应状态发生次数进行记录
/health:该接口用于获取应用的各类健康指标信息
/dump:该接口用于暴露程序运行中的线程信息
/trace:该接口用于返回基本的HTTP请求跟踪信息,它只会保留最近发起的100条请求记录
操作控制类的接口主要提供了一系列对应用的操作功能。
/shutdown:该接口用于关闭应用,默认情况下是关闭的,想要开启该接口需要在配置文件中增加如下配置:
endpoints.shutdown.enable = true
目前在原生端口中,操作控制类的接口只提供了该接口
参考文献:永超著. Spring Cloud微服务实战. 北京: 电子工业出版社. 2017-06.

你可能感兴趣的:(java-web开发,Spring,Spring微服务,actuator)