javascript
学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator
前言
主要是完成微服務的監控,完成監控治理。可以查看微服務間的數據處理和調用,當它們之間出現了異常,就可以快速定位到出現問題的地方。
- springboot - version: 2.0
正文
依賴
maven 項目 在 pom.xml 文件中加入 actuator 的依賴:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>使用 Gradle 構建:也可以使用Maven
dependencies {compile("org.springframework.boot:spring-boot-starter-actuator") }配置
需要注意的是 Spring Boot 2.0 相對于上個版本, Actuator 發生很多變化,
keys 的配置改變
| endpoints..* | management.endpoint..* |
| endpoints.cors.* | management.endpoints.web.cors.* |
| endpoints.jmx.* | management.endpoints.jmx.* |
| management.address | management.server.address |
| management.context-path | management.server.servlet.context-path |
| management.ssl.* | management.server.ssl.* |
| management.port | management.server.port |
基本路徑
所有 endpoints 默認情況下都已移至 /actuator。就是多了跟路徑 actuator ;
上個版本中的 management/context-path: 和 management/port: 改為 :
management:server:port: 8004servlet:context-path: /xxx # 只有在設置了 management.server.port 時才有效另外,您還可以使用新的單獨屬性 management.endpoints.web.base-path 為管理端點設置基本路徑。
例如,如果你設置management.server.servlet.context-path=/management和management.endpoints.web.base-path=/application,你就可以在下面的路徑到達終點健康:/management/application/health。
如果你想恢復 1.x 的行為(即具有/health代替/actuator/health),設置以下屬性:management.endpoints.web.base-path=/
ENDPOINTS
1.X 的時候屬性:
| GET | /autoconfig | 提供了一份自動配置報告,記錄哪些自動配置條件通過了,哪些沒通過 |
| GET | /configprops | 描述配置屬性(包含默認值)如何注入Bean |
| GET | /beans | 描述應用程序上下文里全部的Bean,以及它們的關系 |
| GET | /dump | 獲取線程活動的快照 |
| GET | /env | 獲取全部環境屬性 |
| GET | /env/{name} | 根據名稱獲取特定的環境屬性值 |
| GET | /health | 報告應用程序的健康指標,這些值由HealthIndicator的實現類提供 |
| GET | /info | 獲取應用程序的定制信息,這些信息由info打頭的屬性提供 |
| GET | /mappings | 描述全部的URI路徑,以及它們和控制器(包含Actuator端點)的映射關系 |
| GET | /metrics | 報告各種應用程序度量信息,比如內存用量和HTTP請求計數 |
| GET | /metrics/{name} | 報告指定名稱的應用程序度量值 |
| POST | /shutdown | 關閉應用程序,要求endpoints.shutdown.enabled設置為true |
| GET | /trace | 提供基本的HTTP請求跟蹤信息(時間戳、HTTP頭等) |
2.0 部分更改:
| /actuator | 不再可用。 但是,在 management.endpoints.web.base-path 的根目錄中有一個映射,它提供了到所有暴露端點的鏈接。 |
| /auditevents | 該after參數不再需要 |
| /autoconfig | 重命名為 /conditions |
| /docs | 不再可用 |
| /health | 現在有一個 management.endpoint.health.show-details 選項 never, always, when-authenticated,而不是依靠 sensitive 標志來確定 health 端點是否必須顯示全部細節。 默認情況下,/actuator/health公開并且不顯示細節。 |
| /trace | 重命名為 /httptrace |
默認端點 path 前面多了一級 /actuator 。
同時注意只有端點/health和/info端點是暴露的。
| management.endpoints.jmx.exposure.exclude | |
| management.endpoints.jmx.exposure.include | * |
| management.endpoints.web.exposure.exclude | |
| management.endpoints.web.exposure.include | info, health |
例如:
我現在開啟所有的端點:
management:endpoints:web:exposure:include: "*" # * 在yaml 文件屬于關鍵字執行 localhost:${port}/actuator,可以看到所有可以執行查看的端點監控的 Url,然后我們嘗試執行關閉應用進程的指令:shutdown:
端點格式
JSON 格式已經更改為現在正確地包含有關上下文層次結構,多個DispatcherServlets,部署的 Servlet 和 Servlet 過濾器的信息。詳情請參閱#9979。
Actuator API 文檔的相關部分提供了一個示例文檔。
響應的結構已經過改進,以反映端點關注跟蹤 HTTP 請求 - 響應交換的情況。
總結
主要是 Spring Boot 2.0 版本升級在 Actuator 上面有許多改動,需要記錄下。
參考文章
- Part V. Spring Boot Actuator: Production-ready features
- Spring Boot 2.0系列文章(一):Spring Boot 2.0 遷移指南
總結
以上是生活随笔為你收集整理的学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rust实战入门到进阶(1)
- 下一篇: rust实战入门到进阶(2)