アプリケーション パフォーマンスを監視する
JMX エクスポーターを設定する
エクスポーターの役割は、JMX MBean を受け取って Prometheus に適した形式に変換することです。また、Prometheus の接続先となる HTTP エンドポイントをホストします。Prometheus JMX エクスポーターの詳細についてご確認ください。
Prometheus を使用しない場合は、使用する APM ソリューションで必要となるエクスポーターまたはエージェントを確認する必要があります。たとえば、NewRelic 用の Java エージェントなどです。
エクスポーターをインストールするには、次の手順に従います。
GitHub リポジトリから、Prometheus JMX エクスポーター jar ファイルをダウンロードします。
$ curl -L https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar > jmx-exporter.jar
Java エクスポーター用の設定ファイルを作成します。リポジトリで提供されている jmx-exporter-config.yml 設定ファイルを使用することをお勧めします。
jar と設定の各ファイルを各アプリケーション ノードにコピーします (ローカル ホーム ディレクトリが適しています)。
Confluence をひとつのノードで停止する。
次のシステム プロパティを追加して、JMX エクスポーターの場所を Confluence に指示します。サイトでこの作業を行う方法については「システム プロパティの設定」をご参照ください。
-javaagent:<full-path-to-jmx-exporter-jar>=<port>:<full-path-to-jmx-exporter-config.yml>
初期設定で、JMX エクスポーターではポート 8080 が使用されます。8080 が別のアプリケーションで使用されている場合は、エクスポーター用に別のポートを指定する必要があります。
- Confluence を起動します。
- エクスポーターが動作していることを確認するには、
localhost:<jmx-exporter-port>
に移動します。指標の出力が表示されるはずです。
Confluence をクラスターで実行する場合は、残りのすべてのノードに対してこの手順を繰り返します。ローリング リスタートを実行すると、ダウンタイムを回避できます。
JMX エクスポーター エンドポイントをネットワークの外部に公開しないようにするか適切な手順を実行して、セキュリティを確保します。
アプリ監視が有効になっていることを確認する
アプリ監視では JMX (Java Management Extensions) が使用されるため、JMX とアプリの両監視が有効になっていることを確認する必要があります。初期設定で、これらは両方とも有効になっています。
アプリ監視が有効になっていることを確認するには、次の手順に従います。
- [管理] > [一般設定] > [監視] に移動します。
- [JMX 監視] が有効になっていることを確認します。
[アプリ監視] が有効になっていることを確認します。
以前に Confluence に対して JMX 監視をセットアップしている場合は、操作不要です。追加のアプリ監視指標は、既存のアプリ指標と同じ方法で公開されます。
アプリ名を識別する
アプリ指標には、アプリの表示名ではなくプラグイン キーが含まれています。たとえば、com.atlassian.troubleshooting.plugin-confluence
は、Confluence 用のトラブルシューティングおよびサポート ツール システム アプリのプラグイン キーです。
アプリ名を確認するには、次の手順に従います。
<base-url>/plugins/servlet/upm/osgi
に移動します。- プラグイン キーを [バンドル メタデータの検索] フィールドに入力します。
- 名前やベンダーなど、プラグインの詳細が返されます。
プラグイン キーの検索結果を示す OSGi 管理画面
オプションのタグを有効にする
アプリ ベンダーは、パフォーマンス問題のトラブルシューティング時に役立つ追加メタデータを含められます。初期設定では、これらのタグは含まれていません。
atlassian.metrics.optional.tags
システム プロパティによって、指標の追加タグを表示できます。
atlassian.metrics.optional.tags.<metric-name>=<tag-key1>,<tag-key2>
アプリ監視を無効にする
アプリ監視を無効にするには、次の手順に従います。
- [管理] > [一般設定] > [監視] に移動します。
- [アプリ監視] を無効にします。
無効にすると、Confluence によるアプリ固有の指標の出力やログへの書き込みが停止されます。JMX を完全に無効にする場合は、JMX 監視も無効にできます。
トラブルシューティング
システム プロパティによる JMX の無効化
初期設定で JMX は Confluence で有効になっており、以前はシステム プロパティによってのみ無効にできました。いずれかのノードで confluence.jmx.disabled
プロパティが設定されている場合は、監視ページに警告が表示されます。
システム プロパティを削除するまで、監視画面で JMX 監視のオン/オフを切り替えられません。
out of memory (メモリ不足) エラー
監視はアプリケーションの外部で行われるため、インスタンスのパフォーマンスや安定性に大きな影響はないと予想されます。
監視エージェントが原因でメモリ使用量が増加した、または out of memory (メモリ不足) エラー (OOME) が発生した場合は、setenv ファイルで最小ヒープ サイズ (Xms) を増やすことをお勧めします。「Fix java.lang.OutOfMemoryError in Confluence (Confluence で java.lang.OutOfMemoryError を修正する)」をご覧ください。
次のステップ
次に、APM ツールを JMX エクスポーター エンドポイントを指すように設定します。APM を所有していない場合は、Prometheus と Grafana の設定ガイドをご確認ください。
アプリ指標と推奨されるアラートの完全なリストについては「アプリ指標のリファレンス」をご参照ください。