您好,登錄后才能下訂單哦!
這篇文章主要介紹了spring boot actuator監控的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Spring Boot包含許多其他功能,可幫助您在將應用程序推送到生產環境時監視和管理應用程序。
您可以選擇使用HTTP端點或JMX來管理和監視應用程序。
審核,運行狀況和指標收集也可以自動應用于您的應用程序。
總之Spring Boot Actuator就是一款可以幫助你監控系統數據的框架,其可以監控很多很多的系統數據,它有對應用系統的自省和監控的集成功能,可以查看應用配置的詳細信息,如:
顯示應用程序員的Health健康信息
顯示Info應用信息
顯示HTTP Request跟蹤信息
顯示當前應用程序的“Metrics”信息
顯示所有的@RequestMapping的路徑信息
顯示應用程序的各種配置信息
顯示你的程序請求的次數 時間 等各種信息
等等等等…總之很成熟,很強大.
1. 先在pom.xml中添加依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
對于Gradle,請使用以下聲明:
dependencies { compile("org.springframework.boot:spring-boot-starter-actuator") }
2. 所有的監控端點endpoints介紹:
ID | 描述 |
---|---|
auditevents | 公開當前應用程序的審核事件信息。 |
beans | 顯示應用程序中所有Spring bean的完整列表。 |
caches | 暴露可用的緩存。 |
conditions | 顯示在配置和自動配置類上評估的條件以及它們匹配或不匹配的原因。 |
configprops | 顯示所有的整理列表@ConfigurationProperties,查看配置屬性,包括默認配置 |
env | 露出Spring的屬性的各種環境變量,后面可跟/{name}查看具體的值 |
flyway | 顯示已應用的任何Flyway數據庫遷移。 |
health | 顯示應用健康信息,在spring boot2.0以后需要在配置里show-details打開所有健康信息 |
httptrace | 顯示HTTP跟蹤信息(默認情況下,最后100個HTTP請求 - 響應交換),2.0以后需要手動打開 |
info | 顯示任意應用信息,是在配置文件里自己定義的 |
integrationgraph | 顯示Spring Integration圖。 |
loggers | 顯示和修改應用程序中記錄器的配置。 |
liquibase | 顯示已應用的任何Liquibase數據庫遷移。 |
metrics | 顯示當前應用程序的“指標”信息,比如內存用量和HTTP請求計數,后可跟/{name}查看具體值 |
mappings | 顯示所有@RequestMapping路徑的整理列表。 |
scheduledtasks | 顯示應用程序中的計劃任務。 |
sessions | 允許從Spring Session支持的會話存儲中檢索和刪除用戶會話。使用Spring Session對響應式Web應用程序的支持時不可用 |
shutdown | 允許應用程序正常關閉。 |
threaddump | 執行線程轉儲。 |
如果您的應用程序是Web應用程序(Spring MVC,Spring WebFlux或Jersey),則可以使用以下附加端點:
ID | 描述 |
---|---|
heapdump | 返回hprof堆轉儲文件。 |
jolokia | 通過HTTP公開JMX bean(當Jolokia在類路徑上時,不適用于WebFlux)。 |
logfile | 返回日志文件的內容(如果已設置logging.file或logging.path屬性)。支持使用HTTP Range標頭檢索部分日志文件的內容。 |
prometheus | 以可以由Prometheus服務器抓取的格式公開指標。 |
1.在spring boot 2.0以后,actuator默認只開啟了info和health兩個端點,要想使用其他的端點,需要在application.yml中打開:
management: endpoints: web: exposure: include:"*"
注意:
在這里include: “*” ,這個"“雙引號是必須要,在application.properties是不需要”"雙引號的,application.properties中是這樣的:management.endpoints.web.exposure.include=*
3.而且所有的端點都以默認的路徑http://localhost:8080/actuator 開始;
如我們查看info端點的信息就是訪問:http://localhost:8080/actuator/info
4.Timestamps時間戳: 端點消耗的所有時間戳(作為查詢參數或在請求正文中)必須格式化為ISO 8601中指定的偏移日期和時間 。 默認的時間戳是跟我們中國的時區不符合的.
5.actuator的大部分監控請求都是以get請求的.只有少數是post請求.
6.如果想更改默認的actuator啟動路徑,可以在application.yml中更改,如我們改成 http://localhost:8080/
#調整端點的前綴路徑為/ management: endpoints: web: base-path: /
并且health端點的信息默認也是顯示的不具體的,請看默認的health是顯示的什么:
"UP"就是安全健康的,"DOWN"就是有問題了.
7.在application.yml中開啟所有的Heanth監控數據:
management: endpoint: health: show-details:always #顯示健康具體信息 默認不會顯示詳細信息
我的application.yml是這樣的:
現在你可以開啟服務,試試這些端點的監控數據,因為我已經把監控的路徑改成了 http://localhost:8088 了.所以可以直接在后面跟端點的名稱,如果你沒有更改路徑,默認的啟動路徑是 http://localhost:8088/actuator/ ,然后后面才跟你要監控的端點名稱:
http://localhost:8088/metrics
http://localhost:8088/mappings
端點Metrics監控的數據結果如下
這些數據都是可以監控到的,“磁盤使用率”,這個是我自定義的metrics端點信息,在下面的文章中我會教大家怎么自定義你想要的端點,如果你想看更具體的請在路徑后面加上你要看的數據,/{name},如:
http://localhost:8088/metrics/jvm.memory.used
在pom.xml中添加依賴,可以訪問到pom.xml的信息,如果不加這個,你在application.yml中定義的info信息是不會獲取到的:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <delimiters> <delimiter>@</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin>
在application.yml中這樣配置:
#自定義info端點查看應用相關的信息 info: encoding: @project.build.sourceEncoding@ traget: @java.version@ name: @project.name@ description: @project.description@
訪問 http://localhost:8088/info ,運行結果為:
但是如果你只想打開某個端點,我們是這樣的配置的,同樣式在application.yml中:
management: endpoint: 端點名稱: enabled: true
使用Spring Security來保證Actuator Endpoints安全:
在pom.xml中添加依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
在application.yml中這樣配置:這里是在spring boot2.0以后的版本中,在2.0之前不是這樣的,稍微有差別:
# http安全機制 security: user: name: li password: 123 roles: ADMIN
然后啟動你的服務,你會發現有個登錄頁面,需要你輸入我們配置的賬號密碼:
需要注意,spring boot2.0以后和之前的Security配置有所不同,我有一篇文章提到了!!!
首先自定義健康監測的端點Health:
自定義健康監測的端點有兩種方式:
1.繼承AbstractHealthIndicator類2. 實現HealthIndicator接口。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“spring boot actuator監控的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。