SpringBoot通過注解監(jiān)測Controller接口的代碼示例
一、前言
在Spring Boot中,度量指標(Metrics)是監(jiān)控和診斷應用性能與行為的重要工具。Spring Boot通過集成Micrometer和Spring Boot Actuator,提供了強大的度量指標收集與暴露功能。
二、度量指標
1. Micrometer
Micrometer是一個應用監(jiān)控門面(Facade),它提供了對多種監(jiān)控系統(tǒng)的支持,使得開發(fā)者可以在不修改代碼的情況下切換監(jiān)控后端,如Prometheus、Graphite、InfluxDB等。
Micrometer的核心功能
豐富的指標收集:
系統(tǒng)指標:如CPU使用率、內(nèi)存占用、磁盤I/O、網(wǎng)絡I/O等,這些基礎資源的使用情況對于理解系統(tǒng)性能至關重要。
應用指標:包括請求響應時間、吞吐量、錯誤率等,這些指標直接反映了應用的行為和性能。
自定義指標:開發(fā)者可以根據(jù)需要創(chuàng)建自定義指標,以監(jiān)控特定的業(yè)務流程或組件。
請求跟蹤:
雖然Micrometer本身主要關注于指標收集,但它可以與Spring Cloud Sleuth等跟蹤系統(tǒng)結合使用,實現(xiàn)請求的分布式跟蹤。Sleuth通過添加跟蹤信息(如Trace ID、Span ID)到日志和指標中,幫助開發(fā)者追蹤請求在整個微服務架構中的路徑,從而更容易地診斷問題。
集成日志記錄:
雖然Micrometer不直接處理日志記錄,但將Micrometer的監(jiān)控數(shù)據(jù)與日志系統(tǒng)集成,可以形成更全面的可觀測性體系。例如,可以將Micrometer收集的指標與日志文件中的Trace ID關聯(lián)起來,從而更容易地將性能問題與具體的請求或事務聯(lián)系起來。
2. Spring Boot Actuator
Spring Boot Actuator是Spring Boot的一個子項目,它提供了對應用系統(tǒng)的自省和監(jiān)控的集成功能。通過引入Spring Boot Actuator,應用可以暴露多個端點(Endpoints),這些端點提供了對應用內(nèi)部信息的訪問,包括度量指標、健康檢查、環(huán)境變量等。
三、使用@Timed, @Counted注解來完成接口的監(jiān)測功能
@Timed注解
該注解會統(tǒng)計方法調用的執(zhí)行耗時情況,包括什么類,哪個方法等信息。
@Counted注解
統(tǒng)計方法調用成功與失敗情況。
四、代碼示例
1. 引入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
2. 開啟配置
management.endpoints.web.base-path=/v/ac management.endpoints.web.exposure.include=*
3. 測試代碼
@Timed(value = "test_actuator", description = "test_actuator", histogram = true) @RequestMapping("/test/actuator") public void testActuator(String name){ // 相關業(yè)務 System.out.println("success: " + name); }
http_server_requests_seconds_count:調用次數(shù)。
http_server_requests_seconds_sum:總計耗時(總次數(shù)時間合計)。
http_server_requests_seconds_max:最大耗時時長
以上就是SpringBoot通過注解監(jiān)測Controller接口的代碼示例的詳細內(nèi)容,更多關于SpringBoot注解監(jiān)測Controller的資料請關注腳本之家其它相關文章!
- SpringBoot如何實現(xiàn)調用controller和Service層方法
- springboot中的controller參數(shù)映射問題小結
- springboot中Controller內(nèi)文件上傳到本地及阿里云操作方法
- springboot如何通過controller層實現(xiàn)頁面切換
- springboot Controller直接返回String類型帶來的亂碼問題及解決
- SpringBoot之controller參數(shù)校驗詳解
- springboot中@RestController注解實現(xiàn)
- springboot controller參數(shù)注入方式
- SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析
- SpringBoot和MybatisPlus實現(xiàn)通用Controller示例
相關文章
SpringBoot+Maven 多模塊項目的構建、運行、打包實戰(zhàn)
這篇文章主要介紹了SpringBoot+Maven 多模塊項目的構建、運行、打包實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05詳解在Spring Boot框架下使用WebSocket實現(xiàn)消息推送
這篇文章主要介紹了詳解在Spring Boot框架下使用WebSocket實現(xiàn)消息推送,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12SpringBoot+Vue+Redis實現(xiàn)單點登錄(一處登錄另一處退出登錄)
小編接到一個需求,需要實現(xiàn)用戶在瀏覽器登錄后,跳轉到其他頁面,當用戶在其它地方又登錄時,前面用戶登錄的頁面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實現(xiàn)單點登錄,需要的朋友可以參考下2019-12-12struts2的國際化實現(xiàn)網(wǎng)站整體中英文切換實例代碼
本篇文章主要介紹了struts2的國際化實現(xiàn)網(wǎng)站整體中英文切換實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10