Spring boot actuator端點配置

1. 端點配置

端點自動緩存對不接收任何參數的讀寫操作的響應,配置端點將緩存響應的時間量,使用cache.time-to-live屬性;下面的示例將beans端點緩存的生存時間設置爲10秒。
application.properties:

management.endpoint.beans.cache.time-to-live=10s
  • 前綴==management.endpoint.<name>==是配置端點的唯一標示。
  • 在進行認證的HTTP請求時,Principal 被認爲是端點的輸入,因此不會被緩存。

2.端點的發現頁配置

在發現頁中添加所有端點的鏈接,默認情況下發現頁的地址在 /actuator下:

http://localhost:7001/actuator

當配置自定義管理上下文路徑時,發現頁的路徑自定的從 /actuator轉移到管理上下文的根路徑;例如:如果管理上下文的根路徑是 /management,那麼發現頁的根路徑就變成了 /management ;當管理上下文的根路徑設置爲 / 的時候,發現頁就會被禁用防止和其它的映射衝突。

3.跨域支持

Cross-origin resource sharing (CORS) 是一個W3C規範,這使你可以靈活的指定什麼樣的跨域請求被授權。如果你使用的是Spring MVC或者Spring WebFlux,執行器的Web端點可以配置爲支持這樣的場景。

CORS支持默認是關閉的,並且僅在 management.endpoints.web.cors.allowed-origins 屬性設置之後才起作用,下面的配置允許從example.com域中獲取GET或者POST請求。

management.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST

查看CorsEndPointProperties有關選項的完整列表。

4.自定義端點

如果你添加一個 @Bean 註解和 @EndPoint 註解,任何註解方法使用 @ReadOperation ,@WriteOperation,或者 @DeleteOperation 自動的使用JMX曝光,在Web應用程序中,也可以通過HTTP曝光;端點可以使用HTTP通過Jersy,Spring MVC, Spring WebFlux來曝光。

你還可以通過使用 @JmxEndpoint 或者 @WebEndpoint編寫特定於技術的端點。這些端點僅限於各自的技術。例如:@WebEndpoint 端點只能通過HTTP來曝光而不能通過JMX。

你可以通過==@EndpointWebExtension == 和 @EndpointJmxExtension 編寫特定於技術的擴展,這些註釋允許您提供特定於技術的操作,以增加現有端點。

最後,如果您需要訪問Web框架特定的功能,您可以實現Servlet或Spring@Controller和@RestController端點,代價是它們不能通過JMX獲得,或者當使用不同的Web框架時。

4.1接收輸入

端點通過其參數接收輸入的操作,當通過web來曝光時,這些參數的值取自URL的查詢參數和JSON請求體。當通過JMXL來曝光時,參數映射到MBeans操作的參數,參數默認是必須的額,他們可以通過 @org.springframework.lang.Nullable 註解來選擇他們。

JSON請求體中的每個根屬性可以映射到端點的參數。考慮以下JSON請求主體:

{
	"name": "test",
	"counter": 42
}

這可以用來調用一個帶有 String nameint counter參數的寫操作。

  • 因爲端點是技術不可知的,所以只能在方法簽名中指定簡單類型。特別地,不支持聲明具有 namecounter屬性的自定義類型的單個參數。
  • 允許輸入映射到操作方法的參數,實現端點的Java代碼應該編譯爲 parameters ,實現終結點的Kotlin代碼應該編譯爲 -java-parameters ,如果你正在使用Spring boot的漸變插件或者如果你使用Maven和 spring-boot-starter-parent,那麼這會自動發生。

輸入類型轉換:
傳遞給端點操作方法的參數爲,如果是必須的,自動轉換爲需要的類型;在調用操作方法之前,通過JMX或者HTTP請求接收到的輸入參數將會通過實例 ApplicationConversionService 轉換爲所需要的類型。

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