Prometheus為你的SpringBoot應用保駕護航

猿天地發表於2021-02-01

前面我們介紹了Prometheus的作用和整體的架構,相信大家對Prometheus有了一定的瞭解。

具體可以檢視這篇文章:https://mp.weixin.qq.com/s/QoAs0-AYy8krWTa3HbmJZA

今天著重介紹下如何在專案中將Prometheus用起來,結合漂亮的圖表做資料展示,真的非常帥氣。

使用之前先介紹一個Micrometer,Micrometer 是一款監控指標的度量類庫,提供了對各種指標的監控。比如JVM, 執行緒池,資料庫連線池等。

官方網站:https://micrometer.io/

專案整合

首先在專案中新增下面的Maven依賴,如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.5.9</version>
</dependency>

增加對應的配置,如下:

management:
  endpoints:
    web:
      exposure:
        include: "*"
  metrics:
    tags:
      application: ${spring.application.name}

exposure.include配置你要暴露的端點資訊,全部就配置成 * 號。

tags.application配置成跟服務名一樣即可。

訪問/actuator/prometheus就可以看到很多指標資料了,至於這些資料是怎麼出來的就不做過多講解,對應的程式碼都在micrometer-registry-prometheus包中,大家可以自己去研究下。

# 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配置檔案,新增一個任務進行抓取。

 - job_name: 'haomai-customer-beta'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['192.168.1.49:8099']

在Targets中檢視是否成功。

資料展示

先去grafana搜一個帥氣的圖表,地址如下:

https://grafana.com/grafana/dashboards?search=spring%20boot

選第一個就行了,星星數量多點。

點進去複製圖表的編號12856,去grafana中匯入即可,選擇資料來源就可以展示了。

當然像資料庫連線之類的也可以去搜專門的圖表來展示,或者自定義圖表,這個後面再給大家介紹。

同樣還有告警也是需要單獨做的,可以用grafana自帶的告警來做,也可以單獨部署Alertmanager來做告警。後續再單獨再介紹哈。

關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud微服務-全棧技術與案例解析》, 《Spring Cloud微服務 入門 實戰與進階》作者, 公眾號猿天地發起人。

相關文章