【SpringBoot专题】监控健康状况
前言
想一想,我們以前是如何監(jiān)控一個Java應用的監(jiān)控狀況的?一般而言,我們會在Linux服務器上通過一些命令,比如通過jstat來統(tǒng)計堆內(nèi)存的使用情況/垃圾回收的情況,通過jstack分析Java線程狀態(tài)等。那么對于SpringBoot而言,在監(jiān)控應用健康狀況上,提供了更加簡便以及可視化的工具給我們使用,本文就給大家分享這方面的知識~
?
監(jiān)控插件:actuator
引入actuator插件非常簡單,只需要在項目中依賴(注意和springboot的版本要一致,否則可能報錯):
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '1.5.15.RELEASE'
然后在application.properties中加入配置(不需要認證身份):
management.security.enabled=false
加入依賴后,我們啟動下項目看一下有哪些變化:
監(jiān)控地址?
監(jiān)控應用的整體狀態(tài)以及磁盤狀況?
以json串的形式描述環(huán)境變量?
線程dump文件?
Spring Boot Admin:可視化后臺管理系統(tǒng)
對于spring?actuator而言,最大的缺點在于是以json形式來進行展示,為了更好的進行監(jiān)控顯示,我們來介紹一個更佳方便的工具:springbootadmin。
利用springbootadmin進行監(jiān)控的架構圖如下:
springbootadmin監(jiān)控通俗點,就是我們?nèi)绻衝個springboot業(yè)務系統(tǒng)需要監(jiān)控的話,那么需要一個額外的springbootadmin應用來進行監(jiān)控這些client,client和server之間需要做一點配置即可。
我們先來看一下sever端,即springbootadminserver的配置情況:
加入依賴
compile group: 'de.codecentric', name: 'spring-boot-admin-server', version: '1.5.5'
compile group: 'de.codecentric', name: 'spring-boot-admin-server-ui', version: '1.5.5'?
@EnableAdminServer注解
@EnableAdminServer?
啟動springbootadmin應用:
目前client監(jiān)控信息為空?
接下來,配置client:
加入依賴
compilegroup:'de.codecentric',name:'spring-boot-admin-starter-client',version:'1.5.5'
加入配置
指明springbootadminserver配置?
啟動client后,進入springbootadminserver監(jiān)控界面,你會發(fā)現(xiàn):
監(jiān)控界面列表?
client監(jiān)控情況在監(jiān)控界面上,你會可視化的了解到:環(huán)境變量,線程的狀態(tài)信息,類加載信息(包括依賴的第三方jar),http請求的統(tǒng)計信息(次數(shù)和時間),gc的次數(shù)和時間統(tǒng)計信息,堆/非堆內(nèi)存的使用情況等等。
?
總結
通過本文,你應該能了解到springboot在監(jiān)控方面為開發(fā)人員準備了一套解決方案,通過可視化的工具,使得監(jiān)控變得輕松~
作者:張豐哲
鏈接:https://www.jianshu.com/p/c5d0ee3f1d91
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯(lián)系作者獲得授權并注明出處。
總結
以上是生活随笔為你收集整理的【SpringBoot专题】监控健康状况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【手写系列】纯手写实现一个高可用的RPC
- 下一篇: 面试问烂的 Spring MVC 过程