【问题标题】:Spring boot metrics shows HikariCP connection creation count 1, when HikariCP debug log's connection total is 2Spring boot metrics 显示 HikariCP 连接创建计数为 1,当 HikariCP 调试日志的连接总数为 2 时
【发布时间】:2018-11-05 01:59:42
【问题描述】:

我使用 Spring-boot 2.0.2 版来制作具有默认连接池 HikariCP 的 Web 应用程序。 HikariCP 调试日志显示收集连接大小为 2,但 Spring Boot 指标显示连接创建为 1。

我误会了吗? 提前致谢。

application.yml是下面

spring:
    datasource:
        minimum-idle: 2
        maximum-pool-size: 7

日志:

DEBUG 8936 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - After cleanup  stats (total=2, active=0, idle=2, waiting=0)

指标网址:http://localhost:8080/xxx/metrics/hikaricp.connections.creation

回复:

{
    name: "hikaricp.connections.creation",
    measurements: 
    [
        {
            statistic: "COUNT",
            value: 1  <--- I think this should be 2
        },
        ...
    ]
}

【问题讨论】:

    标签: java spring spring-boot hikaricp spring-boot-actuator


    【解决方案1】:

    您看到的是 HikariCPs failfast check behaviour 在此阶段跟踪指标。

    (其实是因为事先不知道答案,所以才深究的)

    在这个阶段,MetricsTracker 尚未设置,因此初始连接创建不计算在内。如果可以建立初始连接,HikariCP 只会保持此连接。在您的情况下,仅计算下一个连接创建。

    如果您真的希望指标值“正确”,您可以设置spring.datasource.hikari.initialization-fail-timeout=-1。该行为在 HikariCPs README 中的initializationFailTimeout 下进行了描述。

    如果你真的需要一个“正确”的值是有争议的,因为你只会错过最初的计数。理想情况下,您需要推断特定时间窗口中的连接创建计数 - 例如每分钟创建连接的速率,以确定您是否过早从池中释放连接。

    【讨论】:

    • mweirauch 先生。感谢您的评论。我发现 hikariCP 提供了有用的日志,例如 ...stats (total=2, active=0, idle=2, waiting=0 再次感谢!我真的很喜欢 HikariCP。:-)
    • 很高兴您喜欢查看日志。我更喜欢看指标。如果您认为我的回答确实为您最初的问题提供了正确的信息,请不要忘记支持它:)
    猜你喜欢
    • 2019-10-10
    • 2019-05-09
    • 2019-10-27
    • 2015-09-19
    • 1970-01-01
    • 2016-11-24
    • 2018-11-09
    • 2016-02-22
    • 2015-02-14
    相关资源
    最近更新 更多