HikariCP監控指標介紹和應用

概述

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

監控指標

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

  • totalConnections 總鏈接數,包括空閒的鏈接和使用中的鏈接。數據庫

  • idleConnections 空閒鏈接數服務器

  • activeConnections 活躍鏈接數app

totalConnections = activeConnection + idleConnections框架

  • pendingThreads 正在等待鏈接的線程數量。排查性能問題時,這個指標是一個重要的參考指標,若是正在等待鏈接的線程在至關一段時間內數量較多,能夠考慮擴大數據庫鏈接池的size。(即HikariCP的maxPoolSize)spring-boot

  • maxConnections 最大鏈接數,統計指標,統計到目前爲止鏈接的最大數量。性能

  • minConnections 最小鏈接數,統計指標,統計到目前爲止鏈接的最小數量。大數據

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

  • 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數據源拉取指標信息。作分析、處理和展現。

相關文章
相關標籤/搜索