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.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章