中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot應用監控的實戰教程

發布時間:2020-09-04 04:07:31 來源:腳本之家 閱讀:222 作者:hansonwang99 欄目:編程語言

概述

Spring Boot 監控核心是 spring-boot-starter-actuator 依賴,增加依賴后, Spring Boot 會默認配置一些通用的監控,比如 jvm 監控、類加載、健康監控等。

我們之前講過Docker容器的可視化監控,即監控容器的運行情況,包括 CPU使用率、內存占用、網絡狀況以及磁盤空間等等一系列信息。同樣利用SpringBoot作為微服務單元的實例化技術選型時,我們不可避免的要面對的一個問題就是如何實時監控應用的運行狀況數據,比如:健康度、運行指標、日志信息、線程狀況等等。本文就該問題做一點探索并記錄試驗過程。

入門使用:Actuator插件

Actuator插件是SpringBoot原生提供的一個服務,可以通過暴露端點路由,用來輸出應用中的諸多 端點信息。實戰一下!

pom.xml中添加依賴:

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

啟動Spring Boot應用程序之后,只要在瀏覽器中輸入端點信息就能獲得應用的一些狀態信息。

常用端點列舉如下,可以一個個詳細試一下:

  • /info        應用基本信息
  • /health       健康度信息
  • /metrics      運行指標
  • /env        環境變量信息
  • /loggers      日志相關
  • /dump       線程相關信息
  • /trace       請求調用軌跡

當然此時只能使用/health 和 /info端點,其他因為權限問題無法訪問。想訪問指定端點的話可以在yml配置中添加相關的配置項,比如/metrics端點則需要配置:

endpoints:
 metrics:
 sensitive: false

此時瀏覽器訪問/metrics端點就能得到諸如下面所示的信息:

{
 "mem": 71529,
 "mem.free": 15073,
 "processors": 4,
 "instance.uptime": 6376,
 "uptime": 9447,
 "systemload.average": -1.0,
 "heap.committed": 48024,
 "heap.init": 16384,
 "heap.used": 32950,
 "heap": 506816,
 "nonheap.committed": 23840,
 "nonheap.init": 160,
 "nonheap.used": 23506,
 "nonheap": 0,
 "threads.peak": 25,
 "threads.daemon": 23,
 "threads.totalStarted": 28,
 "threads": 25,
 "classes": 6129,
 "classes.loaded": 6129,
 "classes.unloaded": 0,
 "gc.copy.count": 74,
 "gc.copy.time": 173,
 "gc.marksweepcompact.count": 3,
 "gc.marksweepcompact.time": 88,
 "httpsessions.max": -1,
 "httpsessions.active": 0
}

當然也可以開啟全部端點權限,只需如下配置即可:

endpoints:
 sensitive: false

由于Actuator插件提供的監控能力畢竟有限,而且UI比較簡陋,因此需要一個更加成熟一點的工具

Spring Boot Admin監控系統

SBA則是基于Actuator更加進化了一步,其是一個針對Actuator接口進行UI美化封裝的監控工具。我們來實驗一下。

首先來創建一個Spring Boot Admin Server工程作為服務端
pom.xml中加入如下依賴:

<dependency>
 <groupId>de.codecentric</groupId>
 <artifactId>spring-boot-admin-server</artifactId>
 <version>1.5.7</version>
</dependency>

<dependency>
 <groupId>de.codecentric</groupId>
 <artifactId>spring-boot-admin-server-ui</artifactId>
 <version>1.5.7</version>
</dependency>

然后在應用主類上通過加注解來啟用Spring Boot Admin

@EnableAdminServer
@SpringBootApplication
public class SpringbtAdminServerApplication {

 public static void main(String[] args) {
 SpringApplication.run(SpringbtAdminServerApplication.class, args);
 }
}

啟動程序,瀏覽器打開 localhost:8081 查看Spring Boot Admin主頁面:

Spring Boot應用監控的實戰教程

Spring Boot Admin主頁面

此時Application一欄空空如也,等待待監控的應用加入

創建要監控的Spring Boot應用

pom.xml中加入以下依賴

<dependency>
 <groupId>de.codecentric</groupId>
 <artifactId>spring-boot-admin-starter-client</artifactId>
 <version>1.5.7</version>
</dependency>

然后在yml配置中添加如下配置,將應用注冊到Admin服務端去:

spring:
 boot:
 admin:
  url: http://localhost:8081
  client:
  name: AdminTest

Client應用一啟動,Admin服務立馬推送來了消息,告訴你AdminTest上線了:

Spring Boot應用監控的實戰教程

應用上線推送消息

此時去Admin主界面上查看,發現Client應用確實已經注冊上來了:

Spring Boot應用監控的實戰教程

Client應用已注冊上來

查看Detail

Spring Boot應用監控的實戰教程

Detail信息

查看 Metrics

Spring Boot應用監控的實戰教程

Metrics信息

查看 Enviroment

Spring Boot應用監控的實戰教程

Enviroment信息

查看JMX

Spring Boot應用監控的實戰教程

JMX信息

查看Threads

Spring Boot應用監控的實戰教程

Threads信息

查看Trace與詳情

Spring Boot應用監控的實戰教程

Trace信息

點擊最上方JOURNAL,會看到被監控應用程序的事件變化:

Spring Boot應用監控的實戰教程

應用程序的事件變化信息

圖中可以清晰地看到,應用從 REGISTRATION → UNKNOWN → UP 的狀態跳轉。

這樣就將Actuator插件提供的所有端點信息在SBA中全部嘗試了一遍。

參考文獻

http://codecentric.github.io/spring-boot-admin/1.5.7/

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东港市| 伊春市| 齐齐哈尔市| 扶沟县| 于田县| 措勤县| 永寿县| 咸阳市| 紫云| 法库县| 双流县| 娄烦县| 涿鹿县| 沾益县| 平定县| 洛宁县| 祁门县| 平凉市| 石城县| 邹城市| 缙云县| 眉山市| 枣强县| 石楼县| 灌南县| 微博| 廊坊市| 长海县| 会宁县| 玉屏| 寿宁县| 承德县| 绿春县| 临清市| 甘南县| 喀喇| 孟津县| 方正县| 遵义市| 偏关县| 从江县|