HikariCP監控指標介紹和應用


概述

HikariCP提供了一些監控指標,他的監控指標都是基於MicroMeter提供出來的,然后支持Prometheus和Dropwizard。本次我們將討論一下HikariCp的監控指標有哪些,為什么提供這些指標,以及咱們如何去做監控。

監控指標

就像com.zaxxer.hikari.metrics.PoolStats提供的那樣,幾個重要的指標都存儲在poolState中。

  • totalConnections
    總連接數,包括空閑的連接和使用中的連接。

  • idleConnections 空閑連接數

  • activeConnections
    活躍連接數

totalConnections = activeConnection + idleConnections

  • pendingThreads
    正在等待連接的線程數量。排查性能問題時,這個指標是一個重要的參考指標,如果正在等待連接的線程在相當一段時間內數量較多,可以考慮擴大數據庫連接池的size。(即HikariCP的maxPoolSize)

  • maxConnections
    最大連接數,統計指標,統計到目前為止連接的最大數量。

  • minConnections
    最小連接數,統計指標,統計到目前為止連接的最小數量。

  • usageTime
    每個連接使用的時間,當連接被回收的時候會記錄此指標:com.zaxxer.hikari.pool.HikariPool#recycle

  • acquireTime
    獲取每個連接需要等待時間,一個請求獲取數據庫連接后或者因為超時失敗后,會記錄此指標。

  • connectionCreateTime
    連接創建時間

如何監控

這里拿我們比較熟悉的SpringBoot項目為例,同時使用prometheus和grafana,項目中加入promethues的依賴:

    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'io.micrometer:micrometer-registry-prometheus:1.3.0'

同時在SpringBoot項目的application.properties配置文件中加入以下參數:

    management.endpoints.web.exposure.include=prometheus 暴露prometheus格式化的指標,這樣可以被promethues服務器抓取

接下來我們需要啟動一個prometheus的服務,https://prometheus.io/download/ 然后更改下peometheus服務的默認配置再啟動,追加配置如下:

  - job_name: 'prometheus-test' # job名稱
    scrape_interval: 5s # 抓取時間間隔,這里每5s像數據源請求一次
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['127.0.0.1:8080'] # 這里是springBoot項目的地址

接着啟動一個grafana的服務,https://grafana.com/get 啟動后添加prometheus數據源,制作儀表盤等。

擴展知識

  • Micrometer
    Vendor-neutral application metrics facade(與供應商無關的應用程序指標外觀)。我們可以把它類比於日志框架中的slf4j。把promethues類比於logback。應用程序直接依賴Micrometer來暴露指標。Micrometer比較受歡迎,已經作為SpringBoot2.0內置的指標門面庫。

  • Dropwizard
    一個Java框架,類似於SpringBoot,但國內使用較少。其中有提供metrics相關的功能。

  • Prometheus
    一個監控器的實現,基於pull模型,定時像prometheus數據源拉取指標信息。做分析、處理和展示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM