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 재시작
지표¶
지표 집합 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 |