最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)對Http接口進行監(jiān)控的代碼

 更新時間:2024年07月29日 10:50:02   作者:奮斗的狍子007  
Spring Boot Actuator是Spring Boot提供的一個模塊,用于監(jiān)控和管理Spring Boot應(yīng)用程序的運行時信息,本文將介紹一下Spring Boot Actuator以及代碼示例,以及如何進行接口請求監(jiān)控,需要的朋友可以參考下

一、前言

Spring Boot Actuator是Spring Boot提供的一個模塊,用于監(jiān)控和管理Spring Boot應(yīng)用程序的運行時信息。它提供了一組監(jiān)控端點(endpoints),用于獲取應(yīng)用程序的健康狀態(tài)、性能指標(biāo)、配置信息等,并支持通過 HTTP 或 JMX 進行訪問。

使用 Actuator 可以方便地了解應(yīng)用程序的運行狀況,監(jiān)控等關(guān)鍵指標(biāo),并根據(jù)需要采取相應(yīng)的措施。它為開發(fā)人員和運維人員提供了一種簡單而有效的方式來監(jiān)控和管理Spring Boot應(yīng)用程序。例如:在項目中監(jiān)控記錄接口請求的相關(guān)信息,它對于提升系統(tǒng)穩(wěn)定性、優(yōu)化性能、快速定位問題以及保障數(shù)據(jù)安全等方面都起著至關(guān)重要的作用。

本文將介紹一下Spring Boot Actuator以及代碼示例,以及如何進行接口請求監(jiān)控。

二、Spring Boot Actuator主要特性和功能

1. 健康檢查(Health Checks):通過 /actuator/health 端點暴露應(yīng)用程序的健康狀態(tài)。這可以包括數(shù)據(jù)庫連接、外部服務(wù)可達(dá)性等多種健康指標(biāo)。支持自定義健康檢查指標(biāo)。

①. 配置健康檢查的詳細(xì)程度(通過 management.endpoint.health.show-details 屬性)??膳渲玫闹涤?never(默認(rèn),不顯示詳細(xì)信息)、when-authorized(詳細(xì)信息將展示給通過認(rèn)證的用戶)和 always(對所有用戶暴露詳細(xì)信息)。

②. 可以通過 management.health.defaults.enabled 或針對特定組件的 management.health.xxxx.enabled 配置項來啟用或禁用默認(rèn)的健康指示器。

2. 信息端點:通過 /actuator/info 端點展示應(yīng)用程序的自定義信息,如版本號、構(gòu)建信息等。允許在 application.properties 或 application.yml 文件中配置這些信息。

3. 度量指標(biāo)(Metrics):提供應(yīng)用程序的度量指標(biāo),如 JVM 內(nèi)存使用情況、系統(tǒng) CPU 負(fù)載、HTTP 請求統(tǒng)計等??梢酝ㄟ^ /actuator/metrics 端點獲取度量指標(biāo)信息。

4. 日志管理(Logging Management):通過 /actuator/loggers 端點動態(tài)調(diào)整日志級別。允許在運行時查看和修改日志配置,而無需重啟應(yīng)用程序。

5. 環(huán)境屬性(Environment Properties):通過 /actuator/env 端點展示配置的屬性來源,如系統(tǒng)屬性、環(huán)境變量、配置文件等。

6. 線程轉(zhuǎn)儲(Thread Dump):通過 /actuator/threaddump 端點生成當(dāng)前線程的轉(zhuǎn)儲快照,有助于診斷性能問題或死鎖情況。

7. HTTP 跟蹤(HTTP Trace):通過 /actuator/httptrace 端點展示最近的 HTTP 請求和響應(yīng)的跟蹤信息,有助于分析請求處理流程。

8. 審計事件(Audit Events):通過 /actuator/auditevents 端點訪問應(yīng)用程序的審計事件,如安全事件。

9. JMX Beans:除了 HTTP 端點外,Actuator 還提供了 JMX Beans,允許通過 JMX 控制臺來訪問和管理應(yīng)用程序。

10. 關(guān)機和重啟(Shutdown and Restart):在某些配置下,可以通過 /actuator/shutdown 或 /actuator/restart 端點來安全地關(guān)閉或重啟應(yīng)用程序。但請注意,這些功能通常不推薦在生產(chǎn)環(huán)境中使用,因為它們可能帶來安全風(fēng)險。

11. 自定義端點(Custom Endpoints):允許開發(fā)者創(chuàng)建自定義的 Actuator 端點,以擴展監(jiān)控和管理功能。

三、Actuator監(jiān)控分類

Actuator 監(jiān)控分成兩類:原生端點和用戶自定義端點

①. 自定義端點主要是指擴展性,用戶可以根據(jù)自己的實際應(yīng)用,定義一些比較關(guān)心的指標(biāo),在運行期進行監(jiān)控。

②. 原生端點是在應(yīng)用程序里提供眾多Web接口,通過它們了解應(yīng)用程序運行時的內(nèi)部狀況。

原生端點又可以分成三類:

①. 應(yīng)用配置類 :可以查看應(yīng)用在運行期的靜態(tài)信息:例如自動配置信息、加載的 springbean 信息、yml 文件配置信息、環(huán)境信息、請求映射信息。

②. 度量指標(biāo)類 :主要是運行期的動態(tài)信息,例如堆棧、請求連、一些健康指標(biāo)、metrics 信息等。

③. 操作控制類 :主要是指 shutdown,用戶可以發(fā)送一個請求將應(yīng)用的監(jiān)控功能關(guān)閉。

Actuator 提供了13 個接口,具體如下表所示

四、代碼示例

1. 引入依賴

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

2. 添加application.properties配置

打開所有的監(jiān)控點
management.endpoints.web.exposure.include=*

3. 定義一些請求接口

@GetMapping("/v1/test")
 public Object Test1() {
     String name = "hello";
     return name;
 }

 // 異常情況下
 @GetMapping("/v2/test2")
 public Object Test2() {
     String name = "hello new";
     System.out.println(1 / 0) ;
     return name;
 }

4. 瀏覽器訪問

訪問http://localhost:8027/actuator

①查看項目運行情況,通過訪問 /actuator/health

health 主要用來檢查應(yīng)用的運行狀態(tài),這是我們使用最高頻的一個監(jiān)控點。通常使用此接口提醒我們應(yīng)用實例的運行狀態(tài),以及應(yīng)用不”健康“的原因,比如數(shù)據(jù)庫連接、磁盤空間不夠等。

②.查看日志級別情況

比如我們生產(chǎn)環(huán)境日志級別一般都是 info,但是現(xiàn)在有一個bug通過info級別無法排查,那么我們就可以臨時修改 log 級別。

五、http接口監(jiān)控

  • 要使用Actuator的http接口監(jiān)控功能,需要注冊一個HttpTraceRepository類型的Bean
package com.example.yddemo.actuator;

import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HttpActuatorConfig {

    @Bean
    InMemoryHttpTraceRepository inMemoryHttpTraceRepository() {
        return new InMemoryHttpTraceRepository() ;
    }

}

  • 添加application.properties配置
management.endpoints.web.exposure.include=httptrace
  • 訪問http://localhost:8027/actuator

  • 訪問http://localhost:8027/actuator/httptrace

請求一些上面我們定義的接口,然后訪問/actuator/httptrace,展示如下信息

列如:timeTaken屬性記錄的是該接口請求的耗時情況(單位:毫秒)

  • 自定義記錄的信息,可以通過如下配置

訪問/actuator/httptrace,展示的信息,也可以自定義展示需要的信息。

management.trace.http.include=

六、安全管理

1.在application.properties禁用接口

management.endpoint.health.enabled=false

2. 配置訪問權(quán)限驗證,這時再訪問actuator功能時就會彈出登錄窗口,需要輸入賬號密碼驗證后才允許訪問。例如Spring Security,shiro等

3. 使用Filter對訪問actuator做限制

以上就是SpringBoot實現(xiàn)對Http接口進行監(jiān)控的代碼的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot監(jiān)控Http接口的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JVM堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作的問題解析

    JVM堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作的問題解析

    這篇文章主要介紹了JVM 堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作?,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程

    Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程

    這篇文章主要介紹了Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • 詳解Spring全局異常處理的三種方式

    詳解Spring全局異常處理的三種方式

    這篇文章主要介紹了詳解Spring全局異常處理的三種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解openfeign集成spring?cloud?loadbalancer實現(xiàn)負(fù)載均衡流程

    詳解openfeign集成spring?cloud?loadbalancer實現(xiàn)負(fù)載均衡流程

    這篇文章主要介紹了openfeign集成spring?cloud?loadbalancer實現(xiàn)負(fù)載均衡流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 學(xué)習(xí)不同 Java.net 語言中類似的函數(shù)結(jié)構(gòu)

    學(xué)習(xí)不同 Java.net 語言中類似的函數(shù)結(jié)構(gòu)

    這篇文章主要介紹了學(xué)習(xí)不同 Java.net 語言中類似的函數(shù)結(jié)構(gòu),函數(shù)式編程語言包含多個系列的常見函數(shù)。但開發(fā)人員有時很難在語言之間進行切換,因為熟悉的函數(shù)具有不熟悉的名稱。函數(shù)式語言傾向于基于函數(shù)范例來命名這些常見函數(shù)。,需要的朋友可以參考下
    2019-06-06
  • MyBatis-Plus 動態(tài)表名的正確使用方式

    MyBatis-Plus 動態(tài)表名的正確使用方式

    本文主要介紹了MyBatis-Plus 動態(tài)表名的正確使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • Java 緩沖區(qū)優(yōu)化實現(xiàn)思路

    Java 緩沖區(qū)優(yōu)化實現(xiàn)思路

    本文詳細(xì)介紹了Java中的緩沖區(qū)(Buffer)概念、設(shè)計思想、分類、使用場景和注意事項,強調(diào)了緩沖區(qū)通過批量處理減少頻繁I/O或數(shù)據(jù)拷貝,優(yōu)化生產(chǎn)者-消費者速度差異問題,提升性能的核心價值,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Java 隨機生成任意組電話號碼過程解析

    Java 隨機生成任意組電話號碼過程解析

    這篇文章主要介紹了Java 隨機生成任意組電話號碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 詳解SpringBoot健康檢查的實現(xiàn)原理

    詳解SpringBoot健康檢查的實現(xiàn)原理

    這篇文章主要介紹了詳解SpringBoot健康檢查的實現(xiàn)原理,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下
    2021-03-03
  • SpringBoot 創(chuàng)建對象常見的幾種方式小結(jié)

    SpringBoot 創(chuàng)建對象常見的幾種方式小結(jié)

    Spring Boot中創(chuàng)建對象的幾種常見方式包括使用@Component、@Service、@Repository或@Controller注解,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-11-11

最新評論

澄城县| 夏津县| 巨鹿县| 沅江市| 荆门市| 佛坪县| 南漳县| 灵丘县| 蚌埠市| 曲麻莱县| 金沙县| 翁牛特旗| 榆树市| 张家川| 喜德县| 北流市| 浦城县| 临汾市| 日土县| 马山县| 绥化市| 清涧县| 禹州市| 融水| 崇文区| 景谷| 揭阳市| 承德县| 班戈县| 梧州市| 宕昌县| 韶关市| 福泉市| 玉山县| 定西市| 沂源县| 嘉荫县| 江西省| 巍山| 邹城市| 定安县|