Spring Boot Actuator

1、Actuator

Actuator主要是完成微服務的監控,完成監控治理。可以查看微服務間的數據處理和調用,當它們之間出現了異常,就可以快速定位到出現問題的地方。

2、使用

pom.xml 文件中加入 actuator 的依賴:

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

配置發生了變化

需要注意的是 Spring Boot 2.0 相對于1.x版本, Actuator 發生很多變化,

舊的屬性 新的屬性
endpoints.<id>.* management.endpoint.<id>.*
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
  1. 所有 endpoints 默認情況下都已移至 /actuator

  2. 上個版本中的 management/context-path:management/port: 改為 :

    management:
     server:
       port: 8101
       servlet:
          # 只有在設置了 management.server.port 時才有效 
         context-path: /xxx
    

    另外,您還可以使用新的單獨屬性 management.endpoints.web.base-path 為管理端點設置基本路徑。

    如果你想使用 1.x 的路徑配置,設置屬性:management.endpoints.web.base-path=/

springboot 1.X 的屬性:

HTTP 方法 路徑 描述
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 部分更改:

1.x 端點 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是默認暴露的。

Property Default
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include info, health

1. 公開所有端點:

management:
  endpoints:
    web:
      exposure:
        include: "*"

2. 啟用/shutdown端點:

management:
  endpoints:
    shutdown:
      enabled: true

3. 公開所有(已啟用)網絡端點除env端點之外:

management:
  endpoints:
    web:
      exposure:
        include: "*"
        exclude: env
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。