5.9. 外部 Data Grid メトリクス


メトリクスを使用して外部の Data Grid パフォーマンスを監視します。

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

5.9.1. 前提条件

5.9.1.1. Data Grid サーバーメトリクスを有効にした。

Data Grid がエンドポイント /metrics でメトリクスを公開している。デフォルトでは有効になっています。メトリクス名がキャッシュ名に依存しなくなるため、name-as-tags 属性を有効にすることが推奨されます。

Data Grid サーバーでメトリクスを設定するには、以下の XML で示すとおり有効にします。

infinispan.xml

<infinispan>
    <cache-container statistics="true">
        <metrics gauges="true" histograms="false" name-as-tags="true" />
    </cache-container>
</infinispan>
Copy to Clipboard Toggle word wrap

Kubernetes の Data Grid Operator を使用すると、カスタム設定の ConfigMap を使用してメトリクスを有効にできます。以下に例を示します。

ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: cluster-config
data:
  infinispan-config.yaml: >
    infinispan:
      cacheContainer:
        metrics:
          gauges: true
          namesAsTags: true
          histograms: false
Copy to Clipboard Toggle word wrap

infinispan.yaml CR

apiVersion: infinispan.org/v1
kind: Infinispan
metadata:
  name: infinispan
  annotations:
    infinispan.org/monitoring: 'true' 
1

spec:
  configMapName: "cluster-config" 
2
Copy to Clipboard Toggle word wrap

1
デプロイメントの監視を有効にします
2
カスタム設定で ConfigMap 名を設定します。

関連情報は、Infinispan のドキュメント および Infinispan Operator のドキュメントを参照してください。

5.9.2. クラスタリングとネットワーク

このセクションでは、Data Grid ノード間の通信を監視して、起こりうるネットワークの問題を特定するために役立つメトリクスを説明します。

グローバルタグ

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

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

5.9.2.1. レスポンス時間

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

ヒント

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

タグ

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

vendor_jgroups_stats_sync_requests_seconds_count

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

vendor_jgroups_stats_sync_requests_seconds_sum

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

注記

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

5.9.2.2. 帯域幅

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

重要

メトリクス名は、使用されている 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.9.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.9.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.9.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.9.2.6. ネットワークパーティション

5.9.2.6.1. クラスターサイズ

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

ヒント

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

Expand
メトリクス説明

vendor_cluster_size

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

5.9.2.6.2. クロスサイトステータス

クロスサイトステータスは、他のサイトへの接続ステータスを報告します。オンラインの場合は 1 を、オフラインの場合は 0 を返します。2 の値は、ステータスが不明なノードで使用されます。すべてのノードがリモートサイトへの接続を確立するわけではなく、その場合はこの情報は含まれません。

ヒント

正常なクラスターはゼロより大きい値を示します。

Expand
メトリクス説明

vendor_jgroups_site_view_status

シングルサイトのステータス (オンラインの場合は 1)。

タグ

site=<name>
宛先サイトの名前。
5.9.2.6.3. ネットワークパーティションイベント

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

ヒント

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

Expand
メトリクス説明

vendor_jgroups_merge3_get_num_merge_events

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

5.9.3. Data Grid キャッシュ

このセクションのメトリクスは、Data Grid キャッシュの健全性とクラスターのレプリケーションを監視するために役立ちます。

グローバルタグ

cache=<name>
キャッシュの名前。

5.9.3.1. サイズ

これら 2 つのメトリクスを使用して、キャッシュ内のエントリーの数を監視します。キャッシュがクラスター化されている場合、各エントリーには所有者ノードと、異なるノードの 0 個以上のバックアップコピーが存在します。

ヒント

一意のエントリーサイズメトリクスを合計して、クラスターのエントリーの合計数を取得します。

Expand
メトリクス説明

vendor_statistics_approximate_entries

バックアップコピーを含む、ノードによって保存されるエントリーの概数。

vendor_statistics_approximate_entries_unique

バックアップコピーを除く、ノードによって保存されるエントリーの概数。

5.9.3.2. データアクセス

次のメトリクスは、読み取り、書き込み、およびその期間などのキャッシュアクセスを監視します。

5.9.3.2.1. 保存

保存操作は、キャッシュに保存されている値を書き込む、または更新する書き込み操作です。

Expand
メトリクス説明

vendor_statistics_store_times_seconds_count

保存リクエストの合計数。

vendor_statistics_store_times_seconds_sum

すべての保存リクエストの合計所要時間。

注記

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

5.9.3.2.2. 読み取り

読み取り操作はキャッシュから値を読み取ります。2 つのグループに分類でき、値が見つかった場合はヒット、見つからなかった場合はミスとなります。

Expand
メトリクス説明

vendor_statistics_hit_times_seconds_count

ヒットに該当する読み取りリクエストの合計数。

vendor_statistics_hit_times_seconds_sum

ヒットに該当するすべての読み取りリクエストの合計所要時間。

vendor_statistics_miss_times_seconds_count

ミスに該当する読み取りリクエストの合計数。

vendor_statistics_miss_times_seconds_sum

ミスに該当するすべての読み取りリクエストの合計所要時間。

注記

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

5.9.3.2.3. 削除

削除操作はキャッシュから値を削除します。2 つのグループに分類でき、値が存在する場合はヒット、値が存在しない場合はミスとなります。

Expand
メトリクス説明

vendor_statistics_remove_hit_times_seconds_count

ヒットに該当する削除リクエストの合計数。

vendor_statistics_remove_hit_times_seconds_sum

ヒットに該当するすべての削除リクエストの合計所要時間。

vendor_statistics_remove_miss_times_seconds_count

ミスに該当する削除リクエストの合計数。

vendor_statistics_remove_miss_times_seconds_sum

ミスに該当するすべての削除リクエストの合計所要時間。

注記

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

5.9.3.3. ロック

書き込みおよび削除操作では、値がローカルクラスター内とリモートサイトに複製されるまでロックが保持されます。

ヒント

正常なクラスターでは、保持されるロックの数は一定に保たれますが、デッドロックによって一時的な急増が生じる可能性があります。

Expand
メトリクス説明

vendor_lock_manager_number_of_locks_held

現在このノードによって保持されているロックの数。

5.9.3.4. トランザクション

トランザクションキャッシュは、トランザクションを完了するために、One-Phase-Commit と Two-Phase-Commit の両方のプロトコルを使用します。これらのメトリクスは操作時間を追跡します。

注記

PESSMISTIC ロックモードでは、One-Phase-Commit が使用され、コミットリクエストは作成されません。

ヒント

正常なクラスターでは、ロールバックの数はゼロになります。デッドロックはまれですが、ロールバックの回数は増加します。

Expand
メトリクス説明

vendor_transactions_prepare_times_seconds_count

準備リクエストの合計数。

vendor_transactions_prepare_times_seconds_sum

すべての準備リクエストの合計所要時間。

vendor_transactions_rollback_times_seconds_count

ロールバックリクエストの合計数。

vendor_transactions_rollback_times_seconds_sum

すべてのロールバックリクエストの合計所要時間。

vendor_transactions_commit_times_seconds_count

コミットリクエストの合計数。

vendor_transactions_commit_times_seconds_sum

すべてのコミットリクエストの合計所要時間。

注記

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

5.9.3.5. 状態遷移

状態遷移は、ノードがクラスターに参加したり、クラスターから離脱したりするときに発生します。保存されたデータのバランスを取り、必要なコピー数を保証する必要があります。

この操作によりリソースの使用量が増加し、全体的なパフォーマンスに悪影響を及ぼします。

Expand
メトリクス説明

vendor_state_transfer_manager_inflight_transactional_segment_count

ローカルノードが他のノードに要求した処理中のトランザクションセグメントの数。

vendor_state_transfer_manager_inflight_segment_transfer_count

ローカルノードが他のノードに要求した処理中のセグメントの数。

5.9.3.6. クラスターデータレプリケーション

クラスターデータレプリケーションが障害の主な原因となる場合があります。これらのメトリクスは、レスポンス時間を報告します。つまり、更新のレプリケートにかかる時間だけでなく、失敗も報告します。

ヒント

正常なクラスターでは、平均レプリケーション時間はまったく、またはほとんど変動しません。失敗の数は増加しないはずです。

Expand
メトリクス説明

vendor_rpc_manager_replication_count

成功したレプリケーションの合計数。

vendor_rpc_manager_replication_failures

失敗したレプリケーションの合計数。

vendor_rpc_manager_average_replication_time

クラスター内でのデータのレプリケートに費やされた平均時間 (ミリ秒)。

成功率

次の式を使用して、レプリケーション成功率を計算できます。

(vendor_rpc_manager_replication_count)
/
(vendor_rpc_manager_replication_count
 + vendor_rpc_manager_replication_failures)
Copy to Clipboard Toggle word wrap

5.9.3.7. クロスサイトデータレプリケーション

このセクションのメトリクスは、クラスターデータレプリケーションと同様に、データを他のサイトにレプリケートするためにかかる時間を測定します。

ヒント

正常なクラスターでは、クロスサイトレプリケーションの平均時間はまったく、またはほとんど変動しません。

タグ

site=<name>
受信サイトを示します。
Expand
メトリクス説明

vendor_rpc_manager_cross_site_replication_times_seconds_count

クロスサイトリクエストの合計数。

vendor_rpc_manager_cross_site_replication_times_seconds_sum

すべてのクロスサイトリクエストの合計所要時間。

vendor_rpc_manager_replication_times_to_site_seconds_count

クロスサイトリクエストの合計数。このメトリクスは、サイトごとのカウンターを使用することで、さらに詳細になります。

vendor_rpc_manager_replication_times_to_site_seconds_sum

すべてのクロスサイトリクエストの合計所要時間。このメトリクスは、サイトごとの所要時間を使用することで、さらに詳細になります。

vendor_rpc_manager_number_xsite_requests_received_from_site

このノードによって処理されるクロスサイトリクエストの合計数。このメトリクスは、サイトごとのカウンターを使用することで、さらに詳細になります。

vendor_x_site_admin_status

サイトのステータス。値が 1 の場合、オンラインであることを示します。この値は、Data Grid CLI コマンドの bring-online および take-offline に反応します。

注記

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

5.9.4. 次のステップ

メトリクスを使用したトラブルシューティング に戻ります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat