bugfix> java > 投稿

Spring-bootバージョン2.0.2を使用して、デフォルトの接続プールHikariCPでWebアプリケーションを作成します。 HikariCPデバッグログには、2のような接続サイズの収集が表示されますが、スプリングブートメトリックは接続の作成が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)

メトリックのURL:http:// localhost:8080/xxx/metrics/hikaricp.connections.creation

応答:

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

回答 1 件
  • あなたが見ているのは、この段階でのメトリックの追跡に関するHikariCPのフェイルファストチェックの動作です。

    (事前に答えを知らなかったため、実際にこれを掘り下げました)

    この段階で、 MetricsTracker  はまだ設定されていないため、最初の接続作成はカウントされません。最初の接続を確立できた場合、HikariCPはこの接続を維持します。あなたの場合、次の接続の作成のみがカウントされます。

    メトリック値を本当に「正しく」したい場合は、 spring.datasource.hikari.initialization-fail-timeout=-1 を設定できます 。この動作は、 initializationFailTimeout の下のHikariCPのREADMEで説明されています。 。

    「正しい」値が本当に必要な場合は、最初の数だけを見落とすため、議論の余地があります。理想的には、特定の時間枠での接続作成カウントについて推論したいと思うでしょう。接続をプールから早めに破棄するかどうかを判断するための1分あたりの接続作成率。

あなたの答え