HikariCP
采集 HikariCP 相关指标信息
配置¶
DataKit 采集器采集¶
- 开启
statsd
采集器
进入 DataKit 安装目录下的 conf.d/statsd
,复制 statsd.conf.sample
为 statsd.conf
cp prom.conf.sample master.conf
- 开启
ddtrace
采集器
进入 DataKit 安装目录下的 conf.d/ddtrace
,复制 ddtrace.conf.sample
为 ddtrace.conf
cp ddtrace.conf.sample ddtrace.conf
- 执行以下命令,重启 Datakit
客户端配置¶
以 Java Demo 应用为例,采集 Druid 连接池指标和链路
- Demo 项目中连接池配置如下:
spring.datasource.url=jdbc:mysql://xx.xxx.xx.xxx:3306/test?useSSL=false&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=***
spring.datasource.password=*****
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.register-mbeans=true
-
配置 jmx
-
下载 Guance 版 dd-java-agent.jar
- 新建
hikaricp.yaml
文件,内容如下:
init_config:
instances:
- jvm_direct: true
name: hikari-slick-monitoring
collect_default_jvm_metrics: false
collect_default_metrics: false
refresh_beans: 60
conf:
- include:
bean_regex: "com.zaxxer.hikari:type=Pool \\((.*)\\)"
tags:
pool: $1
attribute:
ActiveConnections:
metric_type: gauge
alias: hikaricp.connections.active
IdleConnections:
metric_type: gauge
alias: hikaricp.connections.idle
TotalConnections:
metric_type: gauge
alias: hikaricp.connections.total
ThreadsAwaitingConnection:
metric_type: gauge
alias: hikaricp.connections.pending
- include:
bean_regex: "com.zaxxer.hikari:type=PoolConfig \\((.*)\\)"
tags:
pool: $1
attribute:
MaximumPoolSize:
metric_type: gauge
alias: hikaricp.pool.size.max
IdleTimeout:
metric_type: gauge
alias: hikaricp.idle.timeout
MaxLifetime:
metric_type: gauge
alias: hikaricp.max.lifetime
MinimumIdle:
metric_type: gauge
alias: hikaricp.min.idle
ConnectionTimeout:
metric_type: gauge
alias: hikaricp.connections.timeout
ValidationTimeout:
metric_type: gauge
alias: hikaricp.validation.timeout
LeakDetectionThreshold:
metric_type: gauge
alias: hikaricp.leak.detection.threshold
- 调整启动命令
java \
-javaagent:/xxx/dd-java-agent.jar \
-Ddd.agent.port=9529 \
-Ddd.service=demo \
-Ddd.jmxfetch.check-period=1000 \
-Ddd.jmxfetch.enabled=true \
-Ddd.jmxfetch.config.dir=/xxx/ \
-Ddd.jmxfetch.config=hikaricp.yaml \
-jar xxxx.jar
其中,-Ddd.jmxfetch.config.dir=/xxx/
为 hikaricp.yaml
配置文件所在目录
指标¶
hikaricp 指标集¶
HikariCP 指标位于 hikaricp
指标集下,这里主要介绍 HikariCP 相关指标说明
Metrics | 描述 | 用途 | 单位 |
---|---|---|---|
connections_active |
当前活跃的数据库连接数 |
表示正在被应用程序使用的连接数量 | count |
connections_idle |
当前空闲的数据库连接数 |
表示未被使用的、处于空闲状态的连接数量 | count |
connections_pending |
当前等待获取连接的请求数量 |
如果这个值较高,可能意味着连接池的大小不足以满足当前的并发需求 | count |
connections_total |
当前连接池中总的数据库连接数 |
包括活跃和空闲连接 | count |
idle_timeout |
空闲连接的最大存活时间 |
配置项,当一个连接空闲时间超过这个值时,连接池会将其关闭 | ms |
leak_detection_threshold |
连接泄漏检测阈值 |
配置项,如果一个连接被占用的时间超过这个阈值,连接池会认为可能存在连接泄漏,并发出警告。 | ms |
max_lifetime |
连接的最大生命周期 |
配置项,一个连接从创建到被关闭的总存活时间不能超过这个值 | ms |
min_idle |
连接池中最小空闲连接数 |
配置项,连接池会保证至少有这么多空闲连接,以便快速响应新的请求 | count |
pool_size_max |
连接池中允许的最大连接数 |
配置项,这个值限制了连接池的大小,防止过多的连接消耗过多的资源 | count |
validation_timeout |
连接验证超时时间 |
配置项,在从连接池获取连接时,连接池会验证连接的有效性,如果验证时间超过这个值,则认为验证失败 | ms |
connections_timeout |
连接超时时间 |
配置项,建立连接最大等待时间 | ms |