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 データが同時に収集されます。そのため、2 つのコレクターを有効にする必要があります。
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 |