1. 程式人生 > >SpringBoot入門系列篇(十六):actuator監控模組入門

SpringBoot入門系列篇(十六):actuator監控模組入門

actuator是SpringBoot提供的一個用於監控的模組,想要在SpringBoot中使用則需要引入該jar包:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</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.