欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、前言

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

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

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

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

1. 健康檢查(Health Checks):通過 /actuator/health 端點(diǎn)暴露應(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 配置項(xiàng)來啟用或禁用默認(rèn)的健康指示器。

2. 信息端點(diǎn):通過 /actuator/info 端點(diǎn)展示應(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)計(jì)等。可以通過 /actuator/metrics 端點(diǎn)獲取度量指標(biāo)信息。

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

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

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

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

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

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

10. 關(guān)機(jī)和重啟(Shutdown and Restart):在某些配置下,可以通過 /actuator/shutdown 或 /actuator/restart 端點(diǎn)來安全地關(guān)閉或重啟應(yīng)用程序。但請注意,這些功能通常不推薦在生產(chǎn)環(huán)境中使用,因?yàn)樗鼈兛赡軒戆踩L(fēng)險(xiǎn)。

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

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

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

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

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

原生端點(diǎn)又可以分成三類:

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

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

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

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

四、代碼示例

1. 引入依賴

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

2. 添加application.properties配置

打開所有的監(jiān)控點(diǎ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

①查看項(xiàng)目運(yùn)行情況,通過訪問 /actuator/health

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

②.查看日志級別情況

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

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

  • 要使用Actuator的http接口監(jiān)控功能,需要注冊一個(gè)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屬性記錄的是該接口請求的耗時(shí)情況(單位:毫秒)

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

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

management.trace.http.include=

六、安全管理

1.在application.properties禁用接口

management.endpoint.health.enabled=false

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

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

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

相關(guān)文章

  • SpringBoot之返回json數(shù)據(jù)的實(shí)現(xiàn)方法

    SpringBoot之返回json數(shù)據(jù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot之返回json數(shù)據(jù)的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Spring定時(shí)任務(wù)只執(zhí)行一次的原因分析與解決方案

    Spring定時(shí)任務(wù)只執(zhí)行一次的原因分析與解決方案

    在使用Spring的@Scheduled定時(shí)任務(wù)時(shí),你是否遇到過任務(wù)只執(zhí)行一次,后續(xù)不再觸發(fā)的情況?這種情況可能由多種原因?qū)е?如未啟用調(diào)度、線程池問題、異常中斷等,本文將深入分析Spring定時(shí)任務(wù)只執(zhí)行一次的原因,并提供完整的解決方案,需要的朋友可以參考下
    2025-03-03
  • mybatis攔截器及不生效的解決方法

    mybatis攔截器及不生效的解決方法

    本文主要介紹了mybatis攔截器及不生效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選

    Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選

    這篇文章主要介紹了Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java 創(chuàng)建動態(tài)類和查看方法列表信息的實(shí)例

    Java 創(chuàng)建動態(tài)類和查看方法列表信息的實(shí)例

    這篇文章主要介紹了 Java 創(chuàng)建動態(tài)類和查看方法列表信息的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java解析Excel/導(dǎo)入信息到Excel方式

    java解析Excel/導(dǎo)入信息到Excel方式

    這篇文章主要介紹了java解析Excel/導(dǎo)入信息到Excel方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 深入理解Java定時(shí)調(diào)度(Timer)機(jī)制

    深入理解Java定時(shí)調(diào)度(Timer)機(jī)制

    這篇文章主要介紹了深入理解Java定時(shí)調(diào)度(Timer)機(jī)制,本節(jié)我們主要分析 Timer 的功能。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解Flutter TabLayout 布局用法

    詳解Flutter TabLayout 布局用法

    Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。這篇文章主要介紹了Flutter TabLayout 布局用法,需要的朋友可以參考下
    2019-07-07
  • java不可逆加密算法之md5加密算法使用示例

    java不可逆加密算法之md5加密算法使用示例

    MD5的全稱是Message-Digest Algorithm 5,他是一個(gè)不可逆的字符串加密算法,下面使用示例說明他的用法
    2014-01-01
  • Java中的值傳遞和引用傳遞區(qū)別解析

    Java中的值傳遞和引用傳遞區(qū)別解析

    這篇文章主要介紹了Java中的值傳遞和引用傳遞區(qū)別解析,引用類型的變量保存引用值,“引用值”指向內(nèi)存空間的地址,代表了某個(gè)對象的引用,而不是對象本身,對象本身存放在該引用值所表示的地址的位置,包含:數(shù)組、類、接口,需要的朋友可以參考下
    2023-11-11

最新評論