콘텐츠로 이동

Druid

Druid 데이터베이스 커넥션 풀 관련 지표 정보를 수집합니다.

설치 및 설정

JMX를 통해 Druid 데이터베이스 커넥션 풀 관련 지표 정보를 노출하고, DDTrace를 통해 읽어들입니다. DDTrace는 내부 statsd 모듈을 통해 보고합니다.

1. DDTrace 다운로드

wget -O dd-java-agent.jar 'https://guance.com/dd-image/dd-java-agent.jar'

2. Druid jmx 설정

druid.yaml 파일을 새로 만들고, 내용은 다음과 같습니다.

init_config:
  is_jmx: true
  collect_default_metrics: true

instances:
  - jvm_direct: true
    name: duird-DruidDataSource-monitoring
    collect_default_jvm_metrics: false
    collect_default_metrics: false
    refresh_beans: 60
    conf:
      - include:
          bean_regex: "com.alibaba.druid:type=DruidDataSource,id=\\d+"
          tags:
            pool: druid
          attribute:
            MaxActive:
              metric_type: gauge
              alias: druid.max_active
            ConnectCount:
              metric_type: gauge
              alias: druid.connect_count
            WaitThreadCount:
              metric_type: gauge
              alias: druid.wait_thread_count
            ActivePeak:
              metric_type: gauge
              alias: druid.active_peak
            InitialSize:
              metric_type: gauge
              alias: druid.initial_size
            ConnectErrorCount:
              metric_type: gauge
              alias: druid.connect_error_count
            ActiveCount:
              metric_type: gauge
              alias: druid.active_count
            CloseCount:
              metric_type: gauge
              alias: druid.close_count
            PoolingCount:
              metric_type: gauge
              alias: druid.pooling_count
            RecycleCount:
              metric_type: gauge
              alias: druid.recycle_count
            CreateCount:
              metric_type: gauge
              alias: druid.create_count
            DestroyCount:
              metric_type: gauge
              alias: druid.destroy_count
            CommitCount:
              metric_type: gauge
              alias: druid.commit_count
            RollbackCount:
              metric_type: gauge
              alias: druid.rollback_count              
            MaxWait:
              metric_type: gauge
              alias: druid.max_wait
            MinIdle:
              metric_type: gauge
              alias: druid.min_idle
            MaxIdle:
              metric_type: gauge
              alias: druid.max_idle

3. 시작 명령 조정

java \
-javaagent:/xxx/dd-java-agent.jar \
-Ddd.agent.port=9529 \
-Ddd.service=<application-name> \
-Ddd.jmxfetch.check-period=1000 \
-Ddd.jmxfetch.enabled=true \
-Ddd.jmxfetch.config.dir=/xxx/ \
-Ddd.jmxfetch.config=druid.yaml \
-jar xxxx.jar 

4. DataKit 수집기 설정

Druid 지표는 주로 DDTrace를 통해 처리되어 보고되므로, DDTrace를 활성화하면 APM과 metrics 데이터가 동시에 수집됩니다. 따라서 두 개의 수집기를 활성화해야 합니다.

  • ddtrace 수집기 활성화

cd /usr/local/datakit/conf.d/samples cp ddtrace.conf.sample ddtrace.conf

  • statsd 수집기 활성화

cd /usr/local/datakit/conf.d/samples cp statsd.conf.sample statsd.conf

  • DataKit 재시작
systemctl restart datakit

지표

지표 집합 druid

지표 설명 단위
active_count 현재 사용 중인 연결 수입니다. count
active_peak 활성 연결 수의 과거 최대치입니다. count
close_count 닫힌 연결 수입니다. count
commit_count 커밋된 트랜잭션 수입니다. count
connect_count 성공적으로 생성된 연결의 총 수입니다. count
connect_error_count 연결 실패 횟수입니다. count
create_count 생성된 연결 수입니다. count
destroy_count 소멸된 연결 수입니다. count
initial_size 연결 풀 초기화 시 생성된 연결 수입니다. count
max_active 연결 풀에서 허용되는 최대 활성 연결 수입니다. count
max_idle 연결 풀에서 허용되는 최대 유휴 연결 수입니다. count
max_wait 연결 풀에서 연결을 가져오기 위한 최대 대기 시간입니다. ms
min_idle 연결 풀에서 허용되는 최소 유휴 연결 수입니다. count
pooling_count 현재 유휴 상태인 연결 수입니다. count
recycle_count 회수된 연결 수입니다. count
rollback_count 롤백된 트랜잭션 수입니다. count
wait_thread_count 현재 연결을 기다리는 스레드 수입니다. count

문서 평가

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