5.6. クラスタリングメトリクス


メトリクスを使用して、Red Hat build of Keycloak のノード間の通信を監視します。

これは、メトリクスを使用したトラブルシューティング 章の一部です。

5.6.1. 前提条件

  • Red Hat build of Keycloak でメトリクスを有効にしている。詳細は、メトリクスから洞察を得る の章を参照してください。
  • メトリクスを収集する監視システム。

5.6.2. メトリクス

複数の Red Hat build of Keycloak ノードをデプロイすると、それらのノード間で負荷を分散できますが、そのためにはノード間の通信が必要です。このセクションでは、Red Hat build of Keycloak 間の通信を監視して、起こりうる障害を特定するのに役立つメトリクスを説明します。

注記

これはシングルサイトデプロイメントにのみ適用されます。マルチサイトデプロイメント で説明されているように、複数のサイトを使用する場合、Red Hat build of Keycloak ノードはクラスター化されないため、ノード間の直接通信は行われません。

グローバルタグ

cluster=<name>
クラスター名。複数のクラスターからメトリクスを収集している場合、このタグを使用してメトリクスの所属先を識別できます。
node=<node>
メトリクスを報告するノードの名前。
警告

vendor_jgroups_ で始まるすべてのメトリクス名は、トラブルシューティングとデバッグのためだけに提供されています。メトリクス名は、Red Hat build of Keycloak の今後のリリースで予告なく変更される可能性があります。したがって、ダッシュボードや監視およびアラートでは使用しないことが推奨されます。

5.6.2.1. レスポンス時間

次のメトリクスは、リモートリクエストのレスポンス時間を公開します。レスポンス時間は 2 つのノード間で測定され、処理時間も含まれます。すべてのリクエストはこれらのメトリクスによって測定され、レスポンス時間はクラスターのライフサイクルを通じて安定しているはずです。

ヒント

健全なクラスターでは、レスポンス時間は安定しています。レスポンス時間が増加した場合は、クラスターの性能が低下しているか、ノードの負荷が大きいことを示している可能性があります。

タグ

node=<node>
送信側ノードを識別します。
target_node=<node>
受信ノードを識別します。
Expand
メトリクス説明

vendor_jgroups_stats_sync_requests_seconds_count

受信ノードへの同期リクエストの数。

vendor_jgroups_stats_sync_requests_seconds_sum

受信ノードへの同期リクエストの合計期間

注記

ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。

5.6.2.2. 帯域幅

Red Hat build of Keycloak によって送受信されるすべてのバイトは、これらのメトリクスによって収集されます。また、ハートビートなどのすべての内部メッセージもカウントされます。そのため、各ノードで現在使用されている帯域幅の計算が可能になります。

重要

メトリクス名は、使用されている JGroups トランスポートプロトコルによって異なります。

Expand
メトリクスProtocol説明

vendor_jgroups_tcp_get_num_bytes_received

TCP

ノードが受信したバイトの合計数。

vendor_jgroups_udp_get_num_bytes_received

UDP

vendor_jgroups_tunnel_get_num_bytes_received

TUNNEL

vendor_jgroups_tcp_get_num_bytes_sent

TCP

ノードが送信したバイトの合計数。

vendor_jgroups_udp_get_num_bytes_sent

UDP

vendor_jgroups_tunnel_get_num_bytes_sent

TUNNEL

5.6.2.3. スレッドプール

スレッドプールのサイズを監視することは、ノードに大きな負荷がかかっているかどうかを示す良い指標となります。受信したすべてのリクエストは処理のためにスレッドプールに追加され、スレッドプールがいっぱいになると、リクエストは破棄されます。再送信メカニズムにより、リソース使用量が増加しても信頼性の高い通信が確保されます。

ヒント

正常なクラスターでは、スレッドプールが最大サイズ (デフォルトでは 200 スレッド) に近づくことはありません。

注記

スレッドプールメトリクスは仮想スレッドでは使用できません。OpenJDK 21 で実行する場合、仮想スレッドはデフォルトで有効になります。

重要

メトリクス名は、使用されている JGroups トランスポートプロトコルによって異なります。デフォルトのトランスポートプロトコルは TCP です。

Expand
メトリクスProtocol説明

vendor_jgroups_tcp_get_thread_pool_size

TCP

スレッドプール内の現在のスレッド数。

vendor_jgroups_udp_get_thread_pool_size

UDP

vendor_jgroups_tunnel_get_thread_pool_size

TUNNEL

vendor_jgroups_tcp_get_largest_size

TCP

これまでにプール内で同時に存在したスレッドの最大数。

vendor_jgroups_udp_get_largest_size

UDP

vendor_jgroups_tunnel_get_largest_size

TUNNEL

5.6.2.4. フロー制御

フロー制御は、時間の経過とともに、メッセージ送信側の速度を最も遅い受信側の速度に合わせて調整します。これはクレジットベースのシステムを通じて実装され、各送信側のクレジットが送信時に減少します。送信側は、クレジットが 0 を下回るとブロックし、受信側から補充メッセージを受信した場合にのみメッセージの送信を再開します。

以下のメトリクスは、ブロックされたメッセージの数と平均ブロック時間を示しています。値がゼロではない場合、受信側が過負荷になっているためにクラスターのパフォーマンスが低下する可能性があることを示しています。

各ノードには、ユニキャストメッセージ用の UFC とマルチキャストメッセージ用の MFC という、2 つの独立したフロー制御プロトコルがあります。

ヒント

正常なクラスターでは、すべてのメトリクスの値がゼロになります。

Expand
メトリクス説明

vendor_jgroups_ufc_get_number_of_blockings

フロー制御がユニキャストメッセージの送信側をブロックした回数。

vendor_jgroups_ufc_get_average_time_blocked

ユニキャストメッセージを送信しようとしたときにフロー制御でブロックされた平均時間 (ミリ秒)。

vendor_jgroups_mfc_get_number_of_blockings

フロー制御がマルチキャストメッセージの送信側をブロックした回数。

vendor_jgroups_mfc_get_average_time_blocked

マルチキャストメッセージを送信しようとしたときにフロー制御でブロックされた平均時間 (ミリ秒)。

5.6.2.5. 再送信

JGroups は信頼性の高いメッセージ配信を提供します。メッセージがネットワーク上でドロップされた場合、または送信側がメッセージを処理できない場合は、再送信する必要があります。再送信によりリソース使用量が増加し、通常これはシステムの過負荷を示しています。

Random Early Drop (RED) は送信側のキューを監視します。キューがほぼいっぱいになると、メッセージはドロップされ、再送信が必要になります。これは、送信側のキューがいっぱいになってスレッドがブロックされることを防ぎます。

ヒント

正常なクラスターでは、すべてのメトリクスの値がゼロになります。

Expand
メトリクス説明

vendor_jgroups_unicast3_get_num_xmits

再送信されたメッセージの数。

vendor_jgroups_red_get_dropped_messages

送信側によってドロップされたメッセージの合計数。

vendor_jgroups_red_get_drop_rate

送信がによってドロップされた全メッセージの割合。

5.6.2.6. ネットワークパーティション

5.6.2.6.1. クラスターサイズ

クラスターサイズメトリクスは、クラスター内に存在するノードの数を報告します。異なる場合は、ノードが参加途中か、シャットダウンしているか、最悪の場合はネットワークパーティションの発生を示している可能性があります。

ヒント

正常なクラスターでは、すべてのノードで同じ値が示されます。

Expand
メトリクス説明

vendor_cluster_size

クラスター内のノード数。

5.6.2.6.2. ネットワークパーティションイベント

クラスター内のネットワークパーティションはさまざまな理由で発生します。このメトリクスは、ネットワーク分割を予測するためには使用できませんが、ネットワーク分割が発生してクラスターが統合されたことを示します。

ヒント

正常なクラスターでは、このメトリクスの値はゼロになります。

Expand
メトリクス説明

vendor_jgroups_merge3_get_num_merge_events

ネットワーク分割が検出されてから復旧するまでの時間。

5.6.3. 次のステップ

メトリクスを使用したトラブルシューティング に戻るか、シングルサイトデプロイメント用の埋め込み Infinispan メトリクス に進みます

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat