国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

可觀測(cè)性-Metrics-數(shù)據(jù)庫(kù)連接池HikariCP監(jiān)控

這篇具有很好參考價(jià)值的文章主要介紹了可觀測(cè)性-Metrics-數(shù)據(jù)庫(kù)連接池HikariCP監(jiān)控。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

非SpringBoot環(huán)境

HikariCP其內(nèi)部提供了setMetricRegistry()方法,讓我們可以注入MetricRegistry來(lái)實(shí)現(xiàn)對(duì)連接池指標(biāo)的收集。這樣我們可以較為方便的監(jiān)控連接池的運(yùn)行狀態(tài)。

添加依賴

    <dependency>
      <groupId>com.zaxxer</groupId>
      <artifactId>HikariCP</artifactId>
      <version>4.0.3</version>
    </dependency>
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-core</artifactId>
      <version>1.9.4</version>
    </dependency>

示例

		// hikari配置       
		HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/laker?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false");
        hikariConfig.setUsername("root");
        hikariConfig.setPassword("123456");
        hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
        hikariConfig.setAutoCommit(true);
        hikariConfig.setPoolName("laker_poolName");
        hikariConfig.setMaximumPoolSize(10);
        hikariConfig.setMinimumIdle(3);
        // 創(chuàng)建HikariDataSource
        HikariDataSource dataSource = new HikariDataSource(hikariConfig);
        // 設(shè)置metric注冊(cè)器 每10秒打印一次
        LoggingMeterRegistry loggingMeterRegistry = new LoggingMeterRegistry(new LoggingRegistryConfig() {
            @Override
            public String get(String key) {
                return null;
            }
            @Override
            public Duration step() {
                return Duration.ofSeconds(10);
            }
        }, Clock.SYSTEM);
        dataSource.setMetricRegistry(loggingMeterRegistry);

        // 測(cè)試 持有3秒連接后才釋放
        Connection connection = dataSource.getConnection();
        TimeUnit.SECONDS.sleep(3);
        connection.close();

結(jié)果:

hikaricp.connections{pool=laker_poolName} value=4
hikaricp.connections.active{pool=laker_poolName} value=1
hikaricp.connections.idle{pool=laker_poolName} value=3
hikaricp.connections.max{pool=laker_poolName} value=10
hikaricp.connections.min{pool=laker_poolName} value=3
hikaricp.connections.pending{pool=laker_poolName} value=0
hikaricp.connections.acquire{pool=laker_poolName} throughput=0.1/s mean=0.0000581s max=0.0000581s
hikaricp.connections.creation{pool=laker_poolName} throughput=0.3/s mean=0.006666666s max=0.007s
hikaricp.connections.usage{pool=laker_poolName} throughput=0.1/s mean=3.017s max=3.017s

指標(biāo)詳解

對(duì)應(yīng)的指標(biāo)在com.zaxxer.hikari.metrics.PoolStats中。

指標(biāo) 詳解
hikaricp.connections 當(dāng)前總連接數(shù),包括空閑的連接和使用中的連接。(4 = 3 + 1)對(duì)應(yīng)上面日志;
Connections = activeConnection + idleConnections,會(huì)隨著連接使用情況變化。
hikaricp.connections.active 正在使用中活躍連接數(shù) (1),會(huì)隨著連接使用情況變化。
hikaricp.connections.idle 空閑連接數(shù) (3) ,會(huì)隨著連接使用情況變化。
hikaricp.connections.max 最大連接數(shù) (10),初始配置。
hikaricp.connections.min 最小連接數(shù) (3),初始配置。
hikaricp.connections.pending 正在等待連接的線程數(shù)量(0)。重點(diǎn)一般來(lái)說(shuō),這里應(yīng)該都是0,如果存在這個(gè)數(shù)據(jù)并且時(shí)間較長(zhǎng)要觸發(fā)告警,視情況加大最大連接數(shù)
hikaricp.connections.acquire 獲取每個(gè)連接需要時(shí)間,單位為ns。
hikaricp.connections.creation 連接創(chuàng)建時(shí)間,單位為ms。
hikaricp.connections.timeout 創(chuàng)建連接超時(shí)次數(shù)。
hikaricp.connections.usage 連接從池中取出到返回的時(shí)間,單位為ms。即連接被業(yè)務(wù)占用時(shí)間(3.017s)。重點(diǎn):這個(gè)時(shí)間長(zhǎng)的話,
可能是慢SQL或者長(zhǎng)事務(wù)導(dǎo)致連接被占用問(wèn)題

Spring Boot環(huán)境

手動(dòng)

還是添加上面的依賴組件。

@Configuration
public class DatasourceConfiguration {
    @Bean
    public DataSource primaryDataSource(MetricRegistry metricRegistry) {
		HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/laker?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false");
        hikariConfig.setUsername("root");
        hikariConfig.setPassword("123456");
        hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
        hikariConfig.setAutoCommit(true);
        hikariConfig.setPoolName("laker_poolName");
        hikariConfig.setMaximumPoolSize(10);
        hikariConfig.setMinimumIdle(3);
        // 創(chuàng)建HikariDataSource
        HikariDataSource dataSource = new HikariDataSource(hikariConfig);
        dataSource.setMetricRegistry(loggingMeterRegistry);
        return dataSource;
    }
}

自動(dòng)

只需要添加如下依賴,內(nèi)部會(huì)自動(dòng)加上HikariCPmicrometer-core依賴,并自動(dòng)配置注冊(cè)器。

  <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>

原理,我們可以看這個(gè)類DataSourcePoolMetricsAutoConfiguration.java

可觀測(cè)性-Metrics-數(shù)據(jù)庫(kù)連接池HikariCP監(jiān)控

關(guān)于Sql日志記錄和慢日志

可以看這個(gè)Issue:https://github.com/brettwooldridge/HikariCP/issues/57#issuecomment-354647631

作者是不愿意在連接池層去做這種監(jiān)控的事情的,應(yīng)為會(huì)大大降低其性能。

注意:

  • Sql記錄功能會(huì)導(dǎo)致性能下降,所以建議僅能用于開(kāi)發(fā)、測(cè)試環(huán)境。

  • 慢日志可以考慮通過(guò)事件類型,發(fā)送事件用于告警,關(guān)聯(lián)更多的上下文,在ORM層去做,例如在Mybatis的攔截器做。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-460866.html

到了這里,關(guān)于可觀測(cè)性-Metrics-數(shù)據(jù)庫(kù)連接池HikariCP監(jiān)控的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot整合(五)HikariCP、Druid數(shù)據(jù)庫(kù)連接池—多數(shù)據(jù)源配置

    SpringBoot整合(五)HikariCP、Druid數(shù)據(jù)庫(kù)連接池—多數(shù)據(jù)源配置

    在項(xiàng)目中,數(shù)據(jù)庫(kù)連接池基本是必不可少的組件。在目前數(shù)據(jù)庫(kù)連接池的選型中,主要是 Druid ,為 監(jiān)控 而生的數(shù)據(jù)庫(kù)連接池。 HikariCP ,號(hào)稱 性能 最好的數(shù)據(jù)庫(kù)連接池。 在Spring Boot 2.X 版本,默認(rèn)采用 HikariCP 連接池。而阿里大規(guī)模采用 Druid 。下面介紹在SpringBoot中使用Hika

    2024年02月17日
    瀏覽(51)
  • Spring Boot 如何整合高性能數(shù)據(jù)庫(kù)連接池HikariCP

    Spring Boot 如何整合高性能數(shù)據(jù)庫(kù)連接池HikariCP

    當(dāng)使用Spring Boot整合HikariCP時(shí),您可以更加詳細(xì)地配置和優(yōu)化連接池以獲得更好的性能。以下是更詳細(xì)的步驟和示例代碼: 步驟1:創(chuàng)建Spring Boot項(xiàng)目 您可以使用Spring Initializr(https://start.spring.io/)創(chuàng)建一個(gè)新的Spring Boot項(xiàng)目。確保選擇適合您的需求的依賴項(xiàng),例如Web和Spring D

    2024年02月05日
    瀏覽(32)
  • Spring Boot實(shí)戰(zhàn) | 如何整合高性能數(shù)據(jù)庫(kù)連接池HikariCP

    Spring Boot實(shí)戰(zhàn) | 如何整合高性能數(shù)據(jù)庫(kù)連接池HikariCP

    專欄集錦,大佬們可以收藏以備不時(shí)之需 Spring Cloud實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    瀏覽(28)
  • Oracle 開(kāi)發(fā)篇+Java通過(guò)HiKariCP訪問(wèn)Oracle數(shù)據(jù)庫(kù)

    Oracle 開(kāi)發(fā)篇+Java通過(guò)HiKariCP訪問(wèn)Oracle數(shù)據(jù)庫(kù)

    標(biāo)簽:HikariCP、數(shù)據(jù)庫(kù)連接池、JDBC連接池、 釋義:HikariCP 是一個(gè)高性能的 JDBC 連接池組件,號(hào)稱性能最好的后起之秀,是一個(gè)基于BoneCP做了不少的改進(jìn)和優(yōu)化的高性能JDBC連接池。 ★ Java代碼 ※ 如果您覺(jué)得文章寫的還不錯(cuò),?別忘了在文末給作者點(diǎn)個(gè)贊哦 ~

    2024年02月13日
    瀏覽(23)
  • HikariCP連接池設(shè)置和監(jiān)控

    SpringBoot 項(xiàng)目默認(rèn)自動(dòng)使用 HikariCP, 最近為了進(jìn)行數(shù)據(jù)庫(kù)session控制, 特意調(diào)小了缺省的 poolSize, 原本以為會(huì)自動(dòng)生效, 經(jīng)過(guò)壓測(cè)發(fā)現(xiàn)還是使用默認(rèn)的 poolSize. 原來(lái)的代碼 DataSource 對(duì)象使用的是 Spring DataSource builder創(chuàng)建的, 需要修改為 HikariDataSource 來(lái)創(chuàng)建. 我直接使用 https://blog.csd

    2024年02月08日
    瀏覽(14)
  • 使用 Feature Flags 與可觀測(cè)工具實(shí)現(xiàn)數(shù)據(jù)庫(kù)灰度遷移

    很多企業(yè)會(huì)遇到數(shù)據(jù)庫(kù)升級(jí)、或數(shù)據(jù)庫(kù)遷移的情況,尤其是在自建數(shù)據(jù)庫(kù)服務(wù)向云數(shù)據(jù)庫(kù)服務(wù)、自建機(jī)房向云機(jī)房、舊數(shù)據(jù)庫(kù)向新數(shù)據(jù)庫(kù)遷移等場(chǎng)景。 然而,我們需要在整個(gè)移植過(guò)程中保證其穩(wěn)定性、避免數(shù)據(jù)遺失、服務(wù)宕機(jī)等情況,最常見(jiàn)的移植方法之一就是 數(shù)據(jù)庫(kù)雙寫

    2024年02月12日
    瀏覽(15)
  • 數(shù)據(jù)庫(kù)監(jiān)控與調(diào)優(yōu)【七】—— MySQL數(shù)據(jù)庫(kù)診斷命令

    TIPS 本文基于MySQL 8.0,理論支持MySQL 5.0及更高版本。 本文整理了常用的MySQL診斷命令,可以幫助我們了解數(shù)據(jù)庫(kù)的運(yùn)行情況。 作用: SHOW [FULL] PROCESSLIST用于查看當(dāng)前正在運(yùn)行的線程。如果執(zhí)行此命令的用戶擁有 PROCESS 權(quán)限,則可看到所有線程;否則只能看到自己的線程(即與

    2024年02月11日
    瀏覽(29)
  • 快速監(jiān)控 Oracle 數(shù)據(jù)庫(kù)

    Oracle 數(shù)據(jù)庫(kù)在行業(yè)內(nèi)應(yīng)用廣泛,通常存放的非常重要的數(shù)據(jù),監(jiān)控是必不可少的,本文使用 Cprobe 采集 Oracle 監(jiān)控?cái)?shù)據(jù),極致簡(jiǎn)單,分享給大家。 安裝配置 Oracle 簡(jiǎn)單起見(jiàn),我使用 Docker 啟動(dòng) Oracle,命令如下: 如上命令啟動(dòng)之后,Oracle 的監(jiān)聽(tīng)端口是 1521,用戶名/密碼是 syst

    2024年01月20日
    瀏覽(61)
  • Zabbix監(jiān)控MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)

    zabbix監(jiān)控mysql的方式 只是安裝agent 啟用模板監(jiān)控 啟用自定義腳本的模板監(jiān)控 使用zabbix模版及結(jié)合shell腳本監(jiān)控mysql 創(chuàng)建mysql的zabbix授權(quán)用戶 mysql grant all PRIVILEGES on *.* to zabbix@\\\'localhost\\\' identified by \\\'zabbix\\\';? ###創(chuàng)建一個(gè)有權(quán)限的訪問(wèn)用戶lqb密碼設(shè)置zabbix Query OK, 0 rows affected (0.04 s

    2024年02月12日
    瀏覽(16)
  • 數(shù)據(jù)庫(kù)字段變更監(jiān)控平臺(tái)設(shè)計(jì)開(kāi)發(fā)

    數(shù)據(jù)庫(kù)字段變更監(jiān)控平臺(tái)設(shè)計(jì)開(kāi)發(fā)

    ??在開(kāi)發(fā)過(guò)程中,在值班解決客服問(wèn)題時(shí),在分析定位別人寫的業(yè)務(wù)代碼問(wèn)題時(shí), 重點(diǎn)是不是自己寫的代碼 ,只看到了數(shù)據(jù)庫(kù)中落庫(kù)最終數(shù)據(jù),并不知道業(yè)務(wù)邏輯問(wèn)題發(fā)生時(shí)數(shù)據(jù)庫(kù)表中當(dāng)時(shí)數(shù)據(jù)情況?如果能知道當(dāng)時(shí)數(shù)據(jù)情況,就能更準(zhǔn),更快的定位到問(wèn)題,可能大家對(duì)

    2024年02月15日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包