SpringBoot監控工具包Actuator使用


一、什么是Actuator?

  當一個SpringBoot項目運行的時候,我們可能需要對這個項目進行實時監控,actuator是一個監控工具包,用來在程序運行時監控運行數據,開發者可以使用http端點或jmx來管理和監控應用程序的健康狀況、應用信息、內存使用狀況等。web服務端點是指您的程序用來和其他應用程序進行通信的url地址。

  在SpringBoot中,端點(endpoints)可用於監控應用及與應用進行交互,Spring Boot包含很多內置的端點,你也可以添加自己的。例如,health端點提供了應用的基本健康信息。每個端點都可以啟用或禁用。這控制着端點是否被創建,並且它的bean是否存在於應用程序上下文中。要遠程訪問端點,除了啟用端點,還必須通過JMX或HTTP進行暴露。大部分應用選擇HTTP方式暴露,端點的ID映射到一個帶/actuator前綴的URL。

  SpringBoot2的端點默認根路徑已經由 “/” 調整到了 “/actuator“ 下,可以在配置文件application.yml中配置根路徑:management.endpoints.web.base-path=/ 。SpringBoot內置了如下一些端點:

 

   在web項目中還可以使用如下端點:

  二、Actuator的使用

   1、引入jar包:使用Actuator需要在springboot項目中引入jar包,Maven引入方式如下

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

  2、啟用端點:默認情況下,除shutdown以外的所有端點均已啟用。要配置單個端點的啟用,請使用management.endpoint.<id>.enabled屬性。配置舉例如下

#啟用端點
management:
endpoints:
enabled-by-default:
false #全局配置,關閉所有端點 endpoint: #單一端點配置 shutdown: enabled:true #啟用shutdown端點

  3、暴露端點:要遠程訪問端點,必須通過JMX或HTTP進行暴露,配置舉例如下

#暴露監控端點
management:
   endpoints:     
web: #http方式暴露
base
-path:/actuator #actuator提供的api接口根路徑 exposure: include: "*" #需要開放的端點,默認只打開health、info,*表示所有
exclude: #需要排除的端點
jmx: #jmx方式暴露
exposure:
include: "*"
exclude:

    注意:禁用的端點將從應用程序上下文中完全刪除。如果您只想更改端點公開(對外暴露)的技術,請改為使用includeexclude屬性。由於端點可能包含敏感信息,因此應仔細考慮何時公開它們。下表顯示了內置端點的默認暴露情況。

   4、端點訪問路徑:默認情況下,端點通過使用端點的ID在/actuator路徑下的HTTP上公開。例如,beans端點暴露在/actuator/beans下。如果要將端點映射到其他路徑,則可以使用management.endpoints.web.path-mapping屬性。另外,如果您想更改基本路徑,則可以使用management.endpoints.web.base-path

  5、端點跨域訪問:默認情況下,CORS支持處於禁用狀態,只有在設置了management.endpoints.web.cors.allowed-origins屬性后才能啟用。以下配置允許來自example.com域的GET和POST調用:

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

  6、自定義端點:如果添加用@Endpoint注解@Bean,則任何使用@ReadOperation@WriteOperation@DeleteOperation注釋的方法都會自動通過JMX公開,並且也可以通過HTTP在Web應用程序中通過HTTP公開。也可以使用Jersey,Spring MVC或Spring WebFlux通過HTTP公開端點。

  7、端點操作:

    端點上的操作通過參數接收輸入,這些參數的值取自URL的查詢參數和JSON請求主體。通過JMX公開時,參數將映射到MBean操作的參數。參數默認是必需的,可以通過使用@org.springframework.lang.Nullable注釋使其成為可選的。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM