使用SpringBoot+Prometheus+Grafana實現(xiàn)可視化監(jiān)控
1.概述
本文是博主JAVA監(jiān)控技術(shù)系列的第四篇,前面已經(jīng)聊過了JMX、Spring actuator等技術(shù),本文我們就將依托于Spring actuator+監(jiān)控組件prometheus+數(shù)據(jù)可視化組件grafana來實現(xiàn)對Spring Boot應(yīng)用的可視化監(jiān)控。
2.spring actuator
Spring actuator是spring體系中自帶的監(jiān)控組件,用來監(jiān)測應(yīng)用本身以及所處環(huán)境等內(nèi)容。前文已經(jīng)詳細(xì)介紹過了,自處就不再重復(fù)和展開了。
依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version></version> </dependency>
配置:
management: endpoints: web: exposure: include: "*"
看一下效果:
以上這些指標(biāo)都是actuator自帶的,要適配Prometheus的數(shù)據(jù)采集格式的話需要引入promethus的適配層。ok,接下來我們講一下Prometheus。
3.Prometheus
3.1.介紹
先看看整個prometheus的架構(gòu):
看起來很復(fù)雜對吧?其實并不復(fù)雜,最核心的就是Prometheus Server,其內(nèi)置一個時序數(shù)據(jù)庫,用來存采集上來的監(jiān)控指標(biāo)。然后就是Prometheus提供了很多client端,放在應(yīng)用側(cè)采集監(jiān)控指標(biāo)然后pull metrics(推送采集到的監(jiān)控指標(biāo))個Prometheus Server。然后就是支持對接多種圖形化界面如grafana來進(jìn)行圖形化的展示。最后就是支持各種方式的告警,如發(fā)送email等。
3.2.使用
1.client端的配置
即應(yīng)用內(nèi)的配置。
依賴:
<!--prometheus --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <scope>runtime</scope> </dependency>
配置:
management: endpoints: web: exposure: include: "*" endpoint: prometheus: enabled: true health: show-details: always
可以看到promethus的監(jiān)控指標(biāo)已經(jīng)出來了:
在主啟動類里面,將應(yīng)用的名字告訴Prometheus:
@SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class); } ? @Bean MeterRegistryCustomizer<MeterRegistry> configure(@Value("${spring.application.name}") String applicationName){ return register -> { register.config().commonTags("application", applicationName); }; } }
配置一下應(yīng)用名:
spring: application: name: myApplicationDemo
2.server端的配置
先下載Prometheus,然后解壓:
配置Prometheus的prometheus.yml配置文件:
上面標(biāo)紅的要和應(yīng)用對齊,否則會出現(xiàn):
./prometheus啟動Prometheus:
可以看到:
4.grafana
Grafana 是一個流行的開源數(shù)據(jù)可視化和監(jiān)控工具,它提供了豐富的圖表和儀表盤功能,用于展示和分析時間序列數(shù)據(jù)以及其他類型的數(shù)據(jù)。
官網(wǎng)下載地址:
Download Grafana | Grafana Labs
Linux的下載方式,官網(wǎng)上寫的很清楚:
下載后解壓即可使用。
./grafana-server啟動應(yīng)用,默認(rèn)訪問地址是IP:3000,默認(rèn)賬號密碼都是admin。首次登錄會要求修改密碼。
登陸后,新建一個promethus的連接,配置好自己的promethus的地址和端口號保存即可:
在配置數(shù)據(jù)源的同時,可以選擇grafana為我們準(zhǔn)備的幾套Prometheus的監(jiān)控面板來使用:
我們選擇其中一個,可以看到我們自己的應(yīng)用了:
5.最后
以上就是使用SpringBoot+Prometheus+Grafana實現(xiàn)可視化監(jiān)控的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot可視化監(jiān)控的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot創(chuàng)建線程池的六種方式小結(jié)
本文主要介紹了SpringBoot創(chuàng)建線程池的六種方式小結(jié),包括自定義線程池,固定長度線程池,單一線程池,共享線程池,定時線程池,SpringBoot中注入異步線程池,感興趣的可以了解一下2023-11-11Java多線程案例實戰(zhàn)之定時器的實現(xiàn)
在Java中可以使用多線程和定時器來實現(xiàn)定時任務(wù),下面這篇文章主要給大家介紹了關(guān)于Java多線程案例之定時器實現(xiàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01JDK8中String的intern()方法實例詳細(xì)解讀
String字符串在我們?nèi)粘i_發(fā)中最常用的,當(dāng)然還有他的兩個兄弟StringBuilder和StringBuilder,接下來通過本文給大家介紹JDK8中String的intern()方法詳細(xì)解讀,需要的朋友可以參考下2022-09-09EasyExcel自定義下拉注解的三種實現(xiàn)方式總結(jié)
使用EasyExcel設(shè)置下拉數(shù)據(jù)時,每次都要創(chuàng)建一個SheetWriteHandler組件確實比較繁瑣,為了優(yōu)化這個過程,我們可以通過自定義注解來簡化操作,下面就來看看具體實現(xiàn)方法吧2024-10-10Java?如何用二維數(shù)組創(chuàng)建空心菱形
這篇文章主要介紹了Java?如何用二維數(shù)組創(chuàng)建空心菱形,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Spring Boot實現(xiàn)對文件進(jìn)行壓縮下載功能
在Web應(yīng)用中,文件下載功能是一個常見的需求,特別是當(dāng)你需要提供用戶下載各種類型的文件時,本文將演示如何使用Spring Boot框架來實現(xiàn)一個簡單而強(qiáng)大的文件下載功能,需要的朋友跟隨小編一起學(xué)習(xí)吧2023-09-09