1. 程式人生 > >Prometheus為你的SpringBoot應用保駕護航

Prometheus為你的SpringBoot應用保駕護航

前面我們介紹了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微服務 入門 實戰與進階》作者, 公眾號**猿天地**發