使用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)詳細介紹過了,自處就不再重復(fù)和展開了。
依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version></version>
</dependency>配置:
management:
endpoints:
web:
exposure:
include: "*"看一下效果:

以上這些指標都是actuator自帶的,要適配Prometheus的數(shù)據(jù)采集格式的話需要引入promethus的適配層。ok,接下來我們講一下Prometheus。
3.Prometheus
3.1.介紹
先看看整個prometheus的架構(gòu):

看起來很復(fù)雜對吧?其實并不復(fù)雜,最核心的就是Prometheus Server,其內(nèi)置一個時序數(shù)據(jù)庫,用來存采集上來的監(jiān)控指標。然后就是Prometheus提供了很多client端,放在應(yīng)用側(cè)采集監(jiān)控指標然后pull metrics(推送采集到的監(jiān)控指標)個Prometheus Server。然后就是支持對接多種圖形化界面如grafana來進行圖形化的展示。最后就是支持各種方式的告警,如發(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)控指標已經(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: myApplicationDemo2.server端的配置
先下載Prometheus,然后解壓:
配置Prometheus的prometheus.yml配置文件:

上面標紅的要和應(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)用,默認訪問地址是IP:3000,默認賬號密碼都是admin。首次登錄會要求修改密碼。
登陸后,新建一個promethus的連接,配置好自己的promethus的地址和端口號保存即可:


在配置數(shù)據(jù)源的同時,可以選擇grafana為我們準備的幾套Prometheus的監(jiān)控面板來使用:

我們選擇其中一個,可以看到我們自己的應(yīng)用了:

5.最后
以上就是使用SpringBoot+Prometheus+Grafana實現(xiàn)可視化監(jiān)控的詳細內(nèi)容,更多關(guān)于SpringBoot可視化監(jiān)控的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Netty源碼分析NioEventLoop初始化線程選擇器創(chuàng)建
這篇文章主要介紹了Netty源碼分析NioEventLoop初始化線程選擇器創(chuàng)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息
這篇文章主要為大家詳細介紹了基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
SpringBoot中自定義注解實現(xiàn)參數(shù)非空校驗的示例
這篇文章主要介紹了SpringBoot中自定義注解實現(xiàn)參數(shù)非空校驗,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-11-11
Freemaker Replace函數(shù)的正則表達式運用
這篇文章主要介紹了Freemaker Replace函數(shù)的正則表達式運用 的相關(guān)資料,需要的朋友可以參考下2015-12-12
springboot程序打包docker的四個最佳方式總結(jié)
這篇文章主要介紹了springboot程序打包docker的四個方式,本文將對比一下這幾種方式的大小區(qū)別,從而探索一下最佳的方式,感興趣的小伙伴可以了解下2026-04-04
Java cglib為實體類(javabean)動態(tài)添加屬性方式
這篇文章主要介紹了Java cglib為實體類(javabean)動態(tài)添加屬性方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
SpringBoot遠程調(diào)用(HTTP)實現(xiàn)過程
本文介紹了JDK中常用的HTTP客戶端庫,包括HttpURLConnection、Apache HttpClient、OkHttp、RestTemplate和WebClient,并詳細比較了WebClient和RestTemplate的異同,同時,文章還介紹了Reactor項目中的Mono和Flux等反應(yīng)式編程概念,以及如何在異步非阻塞環(huán)境中使用這些工具2025-11-11

