SpringBoot:SpringBoot中如何實現對Http接口進行監控

一、前言

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

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

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

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

??1. 健康檢查(Health Checks):通過 /actuator/health 端點暴露應用程序的健康狀態。這可以包括數據庫連接、外部服務可達性等多種健康指標。支持自定義健康檢查指標。

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

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

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

??3. 度量指標(Metrics):提供應用程序的度量指標,如 JVM 內存使用情況、系統 CPU 負載、HTTP 請求統計等。可以通過 /actuator/metrics 端點獲取度量指標信息。

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

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

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

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

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

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

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

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

三、Actuator監控分類

Actuator 監控分成兩類:原生端點和用戶自定義端點

??①. 自定義端點主要是指擴展性,用戶可以根據自己的實際應用,定義一些比較關心的指標,在運行期進行監控。

??②. 原生端點是在應用程序里提供眾多Web接口,通過它們了解應用程序運行時的內部狀況

原生端點又可以分成三類

??①. 應用配置類 :可以查看應用在運行期的靜態信息:例如自動配置信息、加載的 springbean 信息、yml 文件配置信息、環境信息、請求映射信息。

??②. 度量指標類 :主要是運行期的動態信息,例如堆棧、請求連、一些健康指標、metrics 信息等。

??③. 操作控制類 :主要是指 shutdown,用戶可以發送一個請求將應用的監控功能關閉。

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

在這里插入圖片描述

四、代碼示例

1. 引入依賴

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

2. 添加application.properties配置

打開所有的監控點
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 主要用來檢查應用的運行狀態,這是我們使用最高頻的一個監控點。通常使用此接口提醒我們應用實例的運行狀態,以及應用不”健康“的原因,比如數據庫連接、磁盤空間不夠等。

在這里插入圖片描述

②.查看日志級別情況

在這里插入圖片描述
??比如我們生產環境日志級別一般都是 info,但是現在有一個bug通過info級別無法排查,那么我們就可以臨時修改 log 級別。

在這里插入圖片描述

五、http接口監控

  1. 要使用Actuator的http接口監控功能,需要注冊一個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 {@BeanInMemoryHttpTraceRepository inMemoryHttpTraceRepository() {return new InMemoryHttpTraceRepository() ;}}
  1. 添加application.properties配置
management.endpoints.web.exposure.include=httptrace
  1. 訪問http://localhost:8027/actuator

??出現下面鏈接,表示配置成功

在這里插入圖片描述
4. 訪問http://localhost:8027/actuator/httptrace

請求一些上面我們定義的接口,然后訪問/actuator/httptrace,展示如下信息
在這里插入圖片描述

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

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

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

management.trace.http.include=

在這里插入圖片描述

五、安全管理

1.在application.properties禁用接口

management.endpoint.health.enabled=false

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

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

??以上就是對SpringBoot中Actuator的介紹以及代碼示例,了解了如何查看健康檢查,如何使用Actuator來實現對Http接口進行監控。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43722.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43722.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43722.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jdk1.8 ConcurrentHashMap 源碼分析

ConcurrentHashMap 1.8 使用synchronized 和CAS 實現 記住&#xff1a;1.8沒有分段鎖不要混淆了&#xff0c;分段鎖是1.7中的 final V putVal(K key, V value, boolean onlyIfAbsent) {if (key null || value null) throw new NullPointerException();//計算hashint hash…

關于Python的類的一些理解

才發現python的類對象只能調用類方法 我想使用對類對象a使用系統調用的len方法就會報錯 2.類對象a是什么&#xff1f; 答&#xff1a;是所有的帶有self的成員變量 舉例說明&#xff1a;紅色的就是a里面的東西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

發表EI會議論文-對考研生和研究生都有好處!

EI論文對考研和保研的幫助主要體現在以下幾個方面&#xff1a; 對考研的幫助 1.復試加分&#xff1a;在考研過程中&#xff0c;復試階段是關鍵&#xff0c;擁有EI論文可以證明考生具備一定的科研能力&#xff0c;給考官留下深刻印象&#xff0c;有助于提高復試通過率。 2.學…

解讀‘‘不要卷模型,要卷應用‘‘

前言 2024 年 7 月 4 日&#xff0c;世界人工智能大會暨人工智能全球治理高級別會議全體會議在上海世博中心舉行。百度創始人李彥宏在產業發展主論壇上發言&#xff0c;呼吁不要卷模型&#xff0c;要卷應用。 目錄 四個要點 積極的觀點 不合理性 總結 四個要點 李彥宏的呼吁…

多模態:Nougat詳解

文章目錄 前言一、模型結構1. encoder2. decoder3. set 二、數據增強三、數據splitting the pages 四、實驗評估repetitions during inference 五、代碼1. 環境安裝2. Dataset&#xff08;dataset.py&#xff09;3. Model&#xff08;model.py&#xff09; 總結 前言 科學知識…

一網統管/視頻匯聚/安防監控平臺EasyCVR啟動后無法訪問是什么原因?

智慧城市/一網統管/視頻匯聚/安防監控平臺EasyCVR兼容性強&#xff0c;支持多協議接入&#xff0c;包括國標GB/T 28181協議、GA/T 1400協議、部標JT808協議、RTMP、RTSP/Onvif協議、海康Ehome、海康SDK、大華SDK、華為SDK、宇視SDK、樂橙SDK、螢石云SDK等&#xff0c;并能對外分…

接口測試課程結構

課程大綱 如圖&#xff0c;接下來的階段課程&#xff0c;依次專項講解如下專題&#xff0c;能力級別為中級&#xff0c;進階后基本為中高級&#xff1a; 1.接口基礎知識&#xff1b; 2.抓包工具&#xff1b; 3.接口工具&#xff1b; 4.mock服務搭建&#xff08;數據模擬服務&am…

虛擬化技術的標準化

虛擬化技術的標準化是一個復雜而系統的過程&#xff0c;它旨在通過制定統一的接口、協議和規范來確保不同虛擬化產品之間的兼容性和互操作性。以下是虛擬化技術標準化的一些具體步驟&#xff1a; 1. 需求分析與標準制定 需求收集&#xff1a;首先&#xff0c;需要廣泛收集來自…

Git使用——首次創建本地倉庫、配置、初始化、關聯遠程倉庫

1、安裝 Git軟件 官網&#xff1a;git-scm.com 有時候官網打不開&#xff0c;這里留存個之前下載過的安裝包&#xff1a; https://download.csdn.net/download/weixin_43908355/89502977 2、配置本地倉庫 在準備建倉庫的文件夾里&#xff0c;右鍵點擊&#xff1a;Git Bash …

鴻蒙系統創建簽名文件及使用創建簽名文件打包并安裝

* 第一步 第二步&#xff1a;創建.p12文件&#xff0c;點擊New如果有的話就Choose Existing 填好下面信息 點擊Next進入到下面界面 開始生成csr文件如下圖 點擊OK–>Finish 文件保存在了下面目錄 第三步 1.訪問華為開發者平臺&#xff0c;登錄開發者賬號&#xff0c;進…

【linux服務器篇】-Redis-RDM遠程連接redis

redis desktop manager 使用遠程連接工具RDM連接redis 市面上比較常見的其中一款工具redis desktop manager 簡單的說&#xff1a; Redis Desktop Manager 簡單的來講就是Redis可視化工具&#xff0c;可以讓我們看到Redis中存儲的內容。 redis desktop manager是一款功能強…

環境構建大師:精通Conda中的conda create命令

環境構建大師&#xff1a;精通Conda中的conda create命令 引言 Conda是一個開源的包管理系統和環境管理系統&#xff0c;廣泛用于Python和其他科學計算語言的依賴管理。conda create命令是Conda中最核心的命令之一&#xff0c;它允許用戶快速創建新的隔離環境&#xff0c;確保…

金絲雀部署的藝術:在Eureka中實現漸進式服務更新

金絲雀部署的藝術&#xff1a;在Eureka中實現漸進式服務更新 引言 在微服務架構中&#xff0c;金絲雀部署是一種逐漸將新版本的服務引入生產環境的策略&#xff0c;以測試新版本在小規模用戶群中的表現&#xff0c;并減少更新風險。Eureka作為Netflix開源的服務發現框架&…

【面試八股總結】面向對象三大特性、虛函數、純虛函數、虛繼承

參考資料&#xff1a;阿秀 一、面向對象三大特性 封裝&#xff1a;將數據和代碼捆綁在一起&#xff0c;避免外界干擾和不確定性訪問 繼承&#xff1a;讓某種類型對象獲得另一個類型對象的屬性和方法 多態&#xff1a;同一種事務表現出不同事務的能力&#xff0c;即&#xf…

紅黑樹,B+樹,B樹的結構原理及對比

紅黑樹 結構原理&#xff1a; 紅黑樹是一種自平衡的二叉搜索樹&#xff0c;它通過在每個節點上增加一個顏色屬性&#xff08;紅色或黑色&#xff09;來確保樹的平衡性。紅黑樹的平衡是通過一系列旋轉和重新著色操作來實現的&#xff0c;這些操作在插入、刪除節點時進行&#…

數據庫課設---學生宿舍管理系統(sql server+C#)

1.引言 1.1 內容及要求 設計內容&#xff1a;設計學生宿舍管理系統。 設計要求&#xff1a; &#xff08;1&#xff09;數據庫應用系統開發的需求分析&#xff0c;寫出比較完善系統功能。 &#xff08;2&#xff09;數據庫概念模型設計、邏輯模型設計以及物理模型設計。 …

yolov8 人體姿態識別

引言 在計算機視覺的各種應用中&#xff0c;人體姿態檢測是一項極具挑戰性的任務&#xff0c;它能夠幫助我們理解人體各部位的空間位置。本文將詳細介紹如何使用 YOLOv8 和 Python 實現一個人體姿態檢測系統&#xff0c;涵蓋模型加載、圖像預處理、姿態預測到結果可視化的全流…

Echarts水球圖(liquidFill)添加文字

效果 代碼 {type: liquidFill,shape: shapes[0].value,radius: 90%,data: [{name: 獨立百貨,value: 0}],center: [50%, 50%],color: [{type: linear,x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: #446bf5},{offset: 1,color: #2ca3e2}],globalCoord: false}],backgro…

JSP實現簡單的登錄和注冊

JSP實現登錄和注冊&#xff08;Map集合模擬數據庫&#xff09; 1、login.jsp2、 loginSelect.jsp3、register.jsp4、 RegisterSelect.jsp5、 index.jsp 1、login.jsp login.jsp中username和password在LoginSelect.jsp驗證是否一致使用session.setAttribute("login_msg&quo…

RTOS系統 -- ARM Cortex-M4 RPMSG之通道初始化函數

RPMsg Lite 在 ARM Cortex-M4 RTOS 中的使用 簡介 在ARM Cortex-M4處理器上使用的RTOS&#xff08;實時操作系統&#xff09;中&#xff0c;rpmsg_lite是一個輕量級的遠程處理消息傳遞框架&#xff0c;通常用于多核處理器或多核系統中不同處理器之間的通信。本文檔將介紹 rpm…