콘텐츠로 이동

HikariCP

HikariCP 관련 지표 정보 수집

구성

DataKit 수집기 수집

  • statsd 수집기 활성화

DataKit 설치 디렉터리 아래의 conf.d/samples 로 이동해 statsd.conf.samplestatsd.conf 로 복사합니다.

cp prom.conf.sample master.conf

  • ddtrace 수집기 활성화

DataKit 설치 디렉터리 아래의 conf.d/ddtrace 로 이동해 ddtrace.conf.sampleddtrace.conf 로 복사합니다.

cp ddtrace.conf.sample ddtrace.conf

  • 다음 명령을 실행하여 Datakit을 재시작합니다.
datakit service -R

클라이언트 설정

Java Demo 애플리케이션을 예로 들어, Druid 커넥션 풀 지표와 트레이스를 수집합니다.

  1. 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
  1. jmx 설정

  2. dd-java-agent 다운로드

SDK

  • 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

문서 평가

이 페이지가 도움이 되었나요?