Prometheus為你的SpringBoot應用保駕護航
阿新 • • 發佈:2021-02-01
前面我們介紹了Prometheus的作用和整體的架構,相信大家對Prometheus有了一定的瞭解。
具體可以檢視這篇文章:[https://mp.weixin.qq.com/s/QoAs0-AYy8krWTa3HbmJZA](https://mp.weixin.qq.com/s/QoAs0-AYy8krWTa3HbmJZA)
今天著重介紹下如何在專案中將Prometheus用起來,結合漂亮的圖表做資料展示,真的非常帥氣。
使用之前先介紹一個Micrometer,Micrometer 是一款監控指標的度量類庫,提供了對各種指標的監控。比如JVM, 執行緒池,資料庫連線池等。
官方網站:[https://micrometer.io/](https://micrometer.io/)
## 專案整合
首先在專案中新增下面的Maven依賴,如下:
```plain
```
增加對應的配置,如下:
```plain
management:
endpoints:
web:
exposure:
include: "*"
metrics:
tags:
application: ${spring.application.name}
```
exposure.include配置你要暴露的端點資訊,全部就配置成 * 號。
tags.application配置成跟服務名一樣即可。
訪問/actuator/prometheus就可以看到很多指標資料了,至於這些資料是怎麼出來的就不做過多講解,對應的程式碼都在micrometer-registry-prometheus包中,大家可以自己去研究下。
```plain
# HELP hikaricp_connections_max Max connections
# TYPE hikaricp_connections_max gauge
hikaricp_connections_max{application="haomai-customer",pool="HikariPool-1",} 10.0
# HELP process_start_time_seconds Start time of the process since unix epoch.
# TYPE process_start_time_seconds gauge
process_start_time_seconds{application="haomai-customer",} 1.611642684781E9
# HELP jvm_gc_max_data_size_bytes Max size of old generation memory pool
# TYPE jvm_gc_max_data_size_bytes gauge
jvm_gc_max_data_size_bytes{application="haomai-customer",} 2.68435456E8
# HELP tomcat_sessions_created_sessions_total
# TYPE tomcat_sessions_created_sessions_total counter
tomcat_sessions_created_sessions_total{application="haomai-customer",} 0.0
```
## 資料採集
如果沒有做服務動態發現,那就手動修改Prometheus配置檔案,新增一個任務進行抓取。
```plain
- job_name: 'haomai-customer-beta'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['192.168.1.49:8099']
```
在Targets中檢視是否成功。
![](https://img2020.cnblogs.com/blog/1618095/202102/1618095-20210201135946696-1329194875.png)
## 資料展示
先去grafana搜一個帥氣的圖表,地址如下:
[https://grafana.com/grafana/dashboards?search=spring%20boot](https://grafana.com/grafana/dashboards?search=spring%20boot)
選第一個就行了,星星數量多點。
![](https://img2020.cnblogs.com/blog/1618095/202102/1618095-20210201135957342-2118828173.png)
點進去複製圖表的編號12856,去grafana中匯入即可,選擇資料來源就可以展示了。
![](https://img2020.cnblogs.com/blog/1618095/202102/1618095-20210201140005320-1908947564.png)
當然像資料庫連線之類的也可以去搜專門的圖表來展示,或者自定義圖表,這個後面再給大家介紹。
同樣還有告警也是需要單獨做的,可以用grafana自帶的告警來做,也可以單獨部署Alertmanager來做告警。後續再單獨再介紹哈。
**關於作者**:尹吉歡,簡單的技術愛好者,《Spring Cloud微服務-全棧技術與案例解析》, 《Spring Cloud微服務 入門 實戰與進階》作者, 公眾號**猿天地**發