spring-boot-route(十八)spring-boot-adtuator監控應用

Java旅途發表於2020-10-18

Spring Boot提供了良好的服務監控模組,只需要通過簡單的配置便可以完成服務監控和管理。但是服務監控這塊內容往往是最容易被忽略的一塊內容,今天我們一起來學習一下使用spring-boot-actuator進行服務監控。spring-boot-actuator提供了監控端點,這些端點直接返回JSON字串,通過這些端點可以查詢服務執行狀況,為了防止端點直接暴露,一般情況下會使用安全框架,如Spring Security來管理這些端點的安全性。

一 常用的端點

端點地址 描述 預設啟用
auditevents 獲取當前應用暴露的審計事件資訊
beans 獲取應用中所有的bean的完整關係列表
caches 獲取公開可以用的快取
conditions 獲取自動配置條件資訊,記錄哪些自動配置條件通過和沒通過的原因
configprops 獲取所有配置屬性,包括預設配置,顯示一個所有 @ConfigurationProperties 的整理列版本
env 獲取所有環境變數
flyway 獲取已應用的所有Flyway資料庫遷移資訊,需要一個或多個 Flyway Bean
health 獲取應用程式健康指標(執行狀況資訊)
httptrace 獲取HTTP跟蹤資訊(預設情況下,最近100個HTTP請求-響應交換)。需要 HttpTraceRepository Bean
info 獲取應用程式資訊
integrationgraph 顯示 Spring Integration 圖。需要依賴 spring-integration-core
loggers 顯示和修改應用程式中日誌的配置
liquibase 獲取應用的所有Liquibase資料庫遷移。需要一個或多個 Liquibase Bean
metrics 獲取系統度量指標資訊
mappings 顯示所有@RequestMapping路徑的整理列表
scheduledtasks 顯示應用程式中的計劃任務
sessions 允許從Spring Session支援的會話儲存中檢索和刪除使用者會話。需要使用Spring Session的基於Servlet的Web應用程式
shutdown 關閉應用
threaddump 獲取系統執行緒轉儲資訊

預設情況下,除了shutdown,其他端點都是啟動狀態。

1.1 如何使用

在專案中引入spring-boot-actuator的依賴,就可以正常使用了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

1.2 如何訪問

/actuator+端點地址

例如想要訪問health端點,則訪問http://ip:port/actuator/health;

1.3 端點開啟/關閉

management:
  endpoint:
  	# 開啟shutdown端點
    shutdown:
      enabled: true

啟用/禁用所有端點

management:
  endpoints:
    enabled-by-default: true

1.4 端點暴露

預設情況下,只有healthinfo暴露了http埠,這些端點支援通過httpJMX訪問,如果需要訪問具體的端點則需要配置暴露。

暴露http端點

management:
  endpoints:
    web:
      exposure:
        include: health,info

暴露JMX端點

management:
  endpoints:
	jmx:
      exposure:
        include: health,info

二 常用端點解析

2.1 health

health包含的健康檢查項有DataSourceHealthIndicatorDiskSpaceHealthIndicatorMongoHealthIndicatorReidsHealthIndicatorCassandraHealthIndicator

關閉特定的檢查項配置如下,關閉redis檢查項:

management:
  health:
    redis:
      enabled: false

預設情況下health只是簡單的展示了UPDOWN兩種狀態,如果想要看詳細資訊,則需要配置

management:
  endpoint:
    health:
      show-details: always

2.2 metrics

metrics可以使用帶PathVariable引數,引數為具體的度量值,如檢視cpu大小,http://localhost:8080/actuator/metrics/system.cpu.count;

2.3 info

info使用的時候需要在配置檔案中自定義資訊,自定義資訊以info開頭。

例如在配置檔案中增加如下內容:

info:
  person:
    name: Java旅途
    age: 18

訪問info端點顯示的是去掉info的一個JSON串:

person:
  name: Java旅途
  age: 18

Spring-Boot-acturator使用起來很方便,但是缺點也很明顯,就是沒有圖形化介面。使用起來也不是很友好,下一章中,我們將使用有圖形化的Spring-Boot-Admin來進行服務監控。

此是spring-boot-route系列的第十八篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的github,歡迎各位小夥伴star

githubhttps://github.com/binzh303/spring-boot-route

點關注、不迷路

如果覺得文章不錯,歡迎關注點贊收藏,你們的支援是我創作的動力,感謝大家。

如果文章寫的有問題,請不要吝嗇,歡迎留言指出,我會及時核查修改。

如果你還想更加深入的瞭解我,可以微信搜尋「Java旅途」進行關注。回覆「1024」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬實力!

相關文章