圖文並茂,新手入門教程,建議收藏
SpringBoot2.x整合Prometheus+Grafana【附原始碼+視訊】
附原始碼+視訊
工程簡介
總體框架圖
簡介
Prometheus
Prometheus,是一個開源的系統監控和告警的工具包,其採用Pull方式採集時間序列的度量資料(也支援push方式),通過Http協議傳輸。它的工作方式是被監控的服務需要公開一個Prometheus端點,這端點是一個HTTP介面,該介面公開了度量的列表和當前的值,然後Prometheus應用從此介面定時拉取資料,一般可以存放在時序資料庫中,然後通過視覺化的Dashboard(e.g.Grafana)進行資料展示。
支援的prometheus metrics
Counter,Gauge,Histogram,Summary,untyped等等。需要注意的是counter只能增不能減,適用於服務請求量,使用者訪問數等統計,但是如果需要統計有增有減的指標需要用Gauge。
exporter
支援的 exporter 很多,可以方便的監控很多應用,同時也可以自定義開發非官方提供的exporter。
grafana
grafana,是一個開源的dashboard展示工具,可以支援很多主流資料來源,包括時序性的和非時序性的。其提供的展示配置以及可擴充套件效能滿足絕大部分時間序列資料展示需求,是一個比較優秀的工具。
支援的資料來源
prometheus,inflexdb,elasticsearch,mysql,postgreSQL,openTSDB等,更多資料來源:https://grafana.com/grafana/plugins/?type=datasource
SpringBoot工程初始化
springboot加速初始化:https://start.aliyun.com/
新增依賴
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
配置資訊
在application.yml增加以下配置項
##SpringBoot2.x整合Prometheus+Grafana
##原始碼:https://github.com/Rodert/SpringBoot-javapub
management:
metrics:
export:
prometheus:
enabled: true
step: 1m
descriptions: true
web:
server:
auto-time-requests: true
endpoints:
prometheus:
id: springmetrics
web:
exposure:
include: health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics
server:
port: 8080
啟動SpringBoot應用
http://localhost:8080/actuator/prometheus
開啟即可看到暴露的資訊
環境安裝
如安裝包下載不成功,可以在公眾號回覆【prometheus安裝包】or【grafana安裝包】領取
Prometheus安裝
下載地址:https://prometheus.io/download/
修改配置:
prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
#暴露路徑
metrics_path: /actuator/prometheus
static_configs:
#SpringBoot的ip和埠號
- targets: ['localhost:8080']
啟動Prometheus
prometheus.exe
測試訪問
jvm_memory_used_bytes
Grafana安裝
下載地址:https://mirrors.huaweicloud.com/grafana/
啟動grafana
測試
預設賬號:admin 密碼:admin
整合
增加資料來源
- Name填一個
- URL填的Prometheus訪問地址
新增圖表
指定資料來源、指定監控指標 jvm_memory_used_bytes
切換圖示
原始碼地址:https://github.com/Rodert/spring-boot-prometheus-grafana
視訊地址:https://space.bilibili.com/404747369
延伸閱讀
- SpringBoot自定義註解
- SpringBoot整合docker入門
- SpringBoot整合ElasticSearch
- SpringBoot快速整合Excel
- SpringBoot整合MyBatis-支援批量更新
- SpringBoot實現鏈路追蹤spring-boot-trace
- SpringBoot2.x整合Prometheus+Grafana【附原始碼】
中級篇
實戰篇
將支援:Activiti + Flowable 工作流; 第三方登入; 支付; 簡訊; 支援 RBAC 動態許可權、資料許可權;監接;商城。SpringBoot Spring Security JWT MyBatis Druid Vue Vuex Element-ui Axios Sass Quill docker-compose、Kafka