7.2. Prometheus を使用したブローカーのランタイムメトリックの監視
以下のセクションでは、OpenShift Container Platform で AMQ Broker の Prometheus メトリックプラグインを設定する方法について説明します。プラグインを使用して、ブローカーのランタイムメトリックを監視および保存できます。Grafana などのグラフィカルツールを使用して、Prometheus プラグインが収集するデータをさらに詳細にわたり視覚化する設定や、ダッシュボードの設定も行うことができます。
Prometheus メトリックプラグインを使用すると、ブローカーメトリックを Prometheus形式で収集およびエクスポートできます。ただし、Red Hat では、Prometheus 自体のインストールや設定、または Grafana などの視覚化ツールは、サポートしていません。Prometheus または Grafana のインストール、設定、または実行に関するサポートが必要な場合は、製品の Web サイトにアクセスして、コミュニティーのサポートやドキュメントなどのリソースを入手してください。
7.2.1. メトリックの概要
AMQ Broker の Prometheus プラグインを使用し、ブローカーのランタイムメトリックを監視および保存して、ブローカーインスタンスの正常性とパフォーマンスを監視できます。AMQ Broker Prometheus プラグインは、ブローカーのランタイムメトリックを Prometheus 形式にエクスポートし、Prometheus 自体を使用してデータのクエリーを視覚化および実行できるようにします。
Grafana などのグラフィカルツールを使用して、Prometheus プラグインが収集するメトリックをさらに詳細にわたり視覚化する設定や、ダッシュボードの設定も行うことができます。
プラグインが Prometheus 形式にエクスポートするメトリックを以下に説明します。
ブローカーメトリック
artemis_address_memory_usage
- メモリーメッセージ向けに、このブローカの全アドレスにより使用されるバイト数。
artemis_address_memory_usage_percentage
-
このブローカ上のすべてのアドレスで使用されるメモリーを、
global-max-size
パラメーターの割合で示したもの。 artemis_connection_count
- このブローカーに接続されているクライアントの数。
artemis_total_connection_count
- 開始してから、このブローカーに接続しているクライアントの数。
アドレスメトリック
artemis_routed_message_count
- 1 つ以上のキューバインディングにルーティングされたメッセージの数。
artemis_unrouted_message_count
- キューバインディングにルーティングされなかったメッセージの数。
キューメトリック
artemis_consumer_count
- 特定のキューからのメッセージを消費しているクライアントの数。
artemis_delivering_durable_message_count
- 特定のキューが現在コンシューマーに配信している永続メッセージの数。
artemis_delivering_durable_persistent_size
- 特定のキューが現在コンシューマーに配信している永続メッセージの永続サイズ。
artemis_delivering_message_count
- 特定のキューが現在コンシューマーに配信しているメッセージの数。
artemis_delivering_persistent_size
- 特定のキューが現在コンシューマーに配信しているメッセージの永続サイズ。
artemis_durable_message_count
- 特定のキューに現存する永続メッセージの数。これには、スケジュールされたメッセージ、ページングされたメッセージ、および配信中のメッセージが含まれます。
artemis_durable_persistent_size
- 現在特定のキューにある永続メッセージの永続サイズ。これには、スケジュールされたメッセージ、ページングされたメッセージ、および配信中のメッセージが含まれます。
artemis_messages_acknowledged
- キューが作成されてから、特定のキューから確認応答されたメッセージの数。
artemis_messages_added
- キューが作成されてから特定のキューに追加されたメッセージの数。
artemis_message_count
- 特定のキューに現在あるメッセージの数。これには、スケジュールされたメッセージ、ページングされたメッセージ、および配信中のメッセージが含まれます。
artemis_messages_killed
- キューが作成されてからその特定のキューから削除されたメッセージの数。メッセージが設定済みの最大配信試行回数を超えると、ブローカはメッセージを強制終了します。
artemis_messages_expired
- キューが作成されてから、その特定のキューから期限切れになったメッセージの数。
artemis_persistent_size
- 現在特定のキューにある全メッセージ (永続および一時) の永続サイズ。これには、スケジュールされたメッセージ、ページングされたメッセージ、および配信中のメッセージが含まれます。
artemis_scheduled_durable_message_count
- 指定のキューにスケジュールされた永続メッセージの数。
artemis_scheduled_durable_persistent_size
- 特定のキューにあるスケジュールされた永続メッセージの永続サイズ。
artemis_scheduled_message_count
- 特定のキューでスケジュールされたメッセージの数。
artemis_scheduled_persistent_size
- 特定のキューでスケジュールされたメッセージの永続サイズ。
上記にリストされていない上位レベルのブローカーメトリックについては、下位レベルのメトリックを集計することで算出できます。たとえば、メッセージの合計数を算出するには、ブローカーデプロイメントのすべてのキューから artemis_message_count
メトリックを集約できます。
AMQ Broker のオンプレミスデプロイメントの場合には、ブローカーをホストする Java 仮想マシン (JVM) のメトリックも Prometheus 形式にエクスポートされます。これは、OpenShift Container Platform での AMQ Broker のデプロイには適用されません。
7.2.2. CR を使用した Prometheus プラグインの有効化
AMQ Broker をインストールすると、Prometheus メトリックプラグインがインストールに含まれます。有効にすると、プラグインはブローカーのランタイムメトリックを収集して Prometheus 形式でエクスポートします。
次の手順は、CR を使用して AMQ Broker の Prometheus プラグインを有効にする方法を示しています。この手順は、AMQ Broker7.9 以降の新規および既存のデプロイメントをサポートします。
実行中のブローカーの別の手順は、「環境変数を使用した実行中のブローカーデプロイメントに対する Prometheus プラグインの有効化」 を参照してください。
手順
ブローカーのデプロイメントに使用する CR インスタンスを開きます。たとえば、基本的なデプロイメントの CR は次のようになります。
apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemis metadata: name: ex-aao application: ex-aao-app spec: deploymentPlan: size: 4 image: registry.redhat.io/amq7/amq-broker-rhel8:7.10 ...
次に示すように、
deployment Plan
セクションで、enable Metrics Plugin
プロパティーを追加し、値をtrue
に設定します。apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemis metadata: name: ex-aao application: ex-aao-app spec: deploymentPlan: size: 4 image: registry.redhat.io/amq7/amq-broker-rhel8:7.10 ... enableMetricsPlugin: true
- enableMetricsPlugin
- デプロイメント内のブローカーに対して Prometheus プラグインを有効にするかどうかを指定します。
- CR インスタンスを保存します。
ブローカーデプロイメントを先に作成したプロジェクトに切り替えます。
$ oc project <project_name>
コマンドラインで変更を適用します。
$ oc apply -f <path/to/custom_resource_instance>.yaml
メトリックプラグインは、Prometheus 形式でブローカーランタイムメトリックの収集を開始します。
関連情報
- 実行中のブローカーの更新については、「ブローカーデプロイメントの実行へのカスタムリソース変更の適用」を参照してください。
7.2.3. 環境変数を使用した実行中のブローカーデプロイメントに対する Prometheus プラグインの有効化
次の手順は、環境変数を使用して AMQ Broker の Prometheus プラグインを有効にする方法を示しています。別の手順は、「CR を使用した Prometheus プラグインの有効化」 を参照してください。
前提条件
- AMQ Broker Operator で作成されたブローカー Pod の Prometheus プラグインを有効にできます。ただし、デプロイされたブローカーは、AMQ Broker 7.7 以降のブローカーコンテナーイメージを使用する必要があります。
手順
- ブローカーのデプロイメントなどのプロジェクトに対する管理者権限で、OpenShift Container Platform Web コンソールにログインします。
-
Web コンソールで、
をクリックします。ブローカーのデプロイメントが含まれるプロジェクトを選択します。 -
プロジェクトの StatefulSets または DeploymentConfigs を表示するには、
または をクリックします。 - ブローカーのデプロイメントに対応する StatefulSet または DeploymentConfig をクリックします。
- ブローカーデプロイメントの環境変数にアクセスするには、環境 タブをクリックします。
新しい環境変数
AMQ_ENABLE_METRICS_PLUGIN
を追加します。変数の値をtrue
に設定します。AMQ_ENABLE_METRICS_PLUGIN
環境変数を設定すると、OpenShift は StatefulSet または DeploymentConfig で各ブローカー Pod を再起動します。デプロイメントに複数の Pod がある場合、OpenShift は各 Pod を順番に再起動します。各ブローカー Pod が再起動すると、そのブローカーの Prometheus プラグインがブローカーのランタイムメトリックの収集を開始します。
7.2.4. 実行中のブローカー Pod の Prometheus メトリックへのアクセス
以下の手順では、実行中のブローカー Pod の Prometheus メトリックにアクセスする方法を説明します。
前提条件
- ブローカー Pod の Prometheus プラグインを有効にしておく必要があります。「環境変数を使用した実行中のブローカーデプロイメントに対する Prometheus プラグインの有効化」 を参照してください。
手順
メトリックのアクセス先のブローカー Pod では、以前に Pod への接続用に作成したルートを特定して、AMQ Broker 管理コンソールに接続する必要があります。メトリックへのアクセスに必要な URL の一部に、ルート名が含まれます。
-
をクリックします。 選択したブローカー Pod で、AMQ Broker 管理コンソールへの Pod の接続用に作成されたルートを特定します。ホスト名に表示される完全な URL をメモします。以下に例を示します。
http://rte-console-access-pod1.openshiftdomain
-
Prometheus メトリックにアクセスするには、Web ブラウザーで、先程メモをしたルート名に
/ metrics
が付けて入力します。以下に例を示します。http://rte-console-access-pod1.openshiftdomain/metrics
コンソール設定で SSL を使用しない場合は、URL に http
を指定してください。この場合、ホスト名の DNS が解決されて、トラフィックは OpenShift ルーターのポート 80 に転送されます。コンソール設定で SSL を使用する場合は、URL に https
を指定します。この場合、ブラウザーはデフォルトで OpenShift ルーターのポート 443 になります。この設定により、OpenShift ルーターが SSL トラフィックにポート 443 も使用する場合には、コンソールに正常に接続できます (これは、ルーターのデフォルト設定)。