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>
<infinispan>
<cache-container statistics="true">
<metrics gauges="true" histograms="false" name-as-tags="true" />
</cache-container>
</infinispan>
Kubernetes の Data Grid Operator を使用すると、カスタム設定の ConfigMap
を使用してメトリクスを有効にできます。以下に例を示します。
ConfigMap
infinispan.yaml CR
関連情報は、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>
- 受信ノードを識別します。
メトリクス | 説明 |
---|---|
| 受信ノードへの同期リクエストの数。 |
| 受信ノードへの同期リクエストの合計期間 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.2.2. 帯域幅 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid が送受信するすべてのバイトは、これらのメトリクスによって収集されます。また、ハートビートなどのすべての内部メッセージもカウントされます。そのため、各ノードで現在使用されている帯域幅の計算が可能になります。
メトリクス名は、使用されている JGroups トランスポートプロトコルによって異なります。
メトリクス | Protocol | 説明 |
---|---|---|
|
| ノードが受信したバイトの合計数。 |
|
| |
|
| |
|
| ノードが送信したバイトの合計数。 |
|
| |
|
|
5.9.2.3. スレッドプール リンクのコピーリンクがクリップボードにコピーされました!
スレッドプールのサイズを監視することは、ノードに大きな負荷がかかっているかどうかを示す良い指標となります。受信したすべてのリクエストは処理のためにスレッドプールに追加され、スレッドプールがいっぱいになると、リクエストは破棄されます。再送信メカニズムにより、リソース使用量が増加しても信頼性の高い通信が確保されます。
正常なクラスターでは、スレッドプールが最大サイズ (デフォルトでは 200
スレッド) に近づくことはありません。
スレッドプールメトリクスは仮想スレッドでは使用できません。OpenJDK 21 で実行する場合、仮想スレッドはデフォルトで有効になります。
メトリクス名は、使用されている JGroups トランスポートプロトコルによって異なります。デフォルトのトランスポートプロトコルは TCP です。
メトリクス | Protocol | 説明 |
---|---|---|
|
| スレッドプール内の現在のスレッド数。 |
|
| |
|
| |
|
| これまでにプール内で同時に存在したスレッドの最大数。 |
|
| |
|
|
5.9.2.4. フロー制御 リンクのコピーリンクがクリップボードにコピーされました!
フロー制御は、時間の経過とともに、メッセージ送信側の速度を最も遅い受信側の速度に合わせて調整します。これはクレジットベースのシステムを通じて実装され、各送信側のクレジットが送信時に減少します。送信側は、クレジットが 0 を下回るとブロックし、受信側から補充メッセージを受信した場合にのみメッセージの送信を再開します。
以下のメトリクスは、ブロックされたメッセージの数と平均ブロック時間を示しています。値がゼロではない場合、受信側が過負荷になっているためにクラスターのパフォーマンスが低下する可能性があることを示しています。
各ノードには、ユニキャストメッセージ用の UFC
とマルチキャストメッセージ用の MFC
という、2 つの独立したフロー制御プロトコルがあります。
正常なクラスターでは、すべてのメトリクスの値がゼロになります。
メトリクス | 説明 |
---|---|
| フロー制御がユニキャストメッセージの送信側をブロックした回数。 |
| ユニキャストメッセージを送信しようとしたときにフロー制御でブロックされた平均時間 (ミリ秒)。 |
| フロー制御がマルチキャストメッセージの送信側をブロックした回数。 |
| マルチキャストメッセージを送信しようとしたときにフロー制御でブロックされた平均時間 (ミリ秒)。 |
5.9.2.5. 再送信 リンクのコピーリンクがクリップボードにコピーされました!
JGroups は信頼性の高いメッセージ配信を提供します。メッセージがネットワーク上でドロップされた場合、または送信側がメッセージを処理できない場合は、再送信する必要があります。再送信によりリソース使用量が増加し、通常これはシステムの過負荷を示しています。
Random Early Drop (RED) は送信側のキューを監視します。キューがほぼいっぱいになると、メッセージはドロップされ、再送信が必要になります。これは、送信側のキューがいっぱいになってスレッドがブロックされることを防ぎます。
正常なクラスターでは、すべてのメトリクスの値がゼロになります。
メトリクス | 説明 |
---|---|
| 再送信されたメッセージの数。 |
| 送信側によってドロップされたメッセージの合計数。 |
| 送信がによってドロップされた全メッセージの割合。 |
5.9.2.6. ネットワークパーティション リンクのコピーリンクがクリップボードにコピーされました!
5.9.2.6.1. クラスターサイズ リンクのコピーリンクがクリップボードにコピーされました!
クラスターサイズメトリクスは、クラスター内に存在するノードの数を報告します。異なる場合は、ノードが参加途中か、シャットダウンしているか、最悪の場合はネットワークパーティションの発生を示している可能性があります。
正常なクラスターでは、すべてのノードで同じ値が示されます。
メトリクス | 説明 |
---|---|
| クラスター内のノード数。 |
5.9.2.6.2. クロスサイトステータス リンクのコピーリンクがクリップボードにコピーされました!
クロスサイトステータスは、他のサイトへの接続ステータスを報告します。オンラインの場合は 1
を、オフラインの場合は 0
を返します。2
の値は、ステータスが不明なノードで使用されます。すべてのノードがリモートサイトへの接続を確立するわけではなく、その場合はこの情報は含まれません。
正常なクラスターはゼロより大きい値を示します。
メトリクス | 説明 |
---|---|
| シングルサイトのステータス (オンラインの場合は 1)。 |
タグ
site=<name>
- 宛先サイトの名前。
5.9.2.6.3. ネットワークパーティションイベント リンクのコピーリンクがクリップボードにコピーされました!
クラスター内のネットワークパーティションはさまざまな理由で発生します。このメトリクスは、ネットワーク分割を予測するためには使用できませんが、ネットワーク分割が発生してクラスターが統合されたことを示します。
正常なクラスターでは、このメトリクスの値はゼロになります。
メトリクス | 説明 |
---|---|
| ネットワーク分割が検出されてから復旧するまでの時間。 |
5.9.3. Data Grid キャッシュ リンクのコピーリンクがクリップボードにコピーされました!
このセクションのメトリクスは、Data Grid キャッシュの健全性とクラスターのレプリケーションを監視するために役立ちます。
グローバルタグ
cache=<name>
- キャッシュの名前。
5.9.3.1. サイズ リンクのコピーリンクがクリップボードにコピーされました!
これら 2 つのメトリクスを使用して、キャッシュ内のエントリーの数を監視します。キャッシュがクラスター化されている場合、各エントリーには所有者ノードと、異なるノードの 0 個以上のバックアップコピーが存在します。
一意のエントリーサイズメトリクスを合計して、クラスターのエントリーの合計数を取得します。
メトリクス | 説明 |
---|---|
| バックアップコピーを含む、ノードによって保存されるエントリーの概数。 |
| バックアップコピーを除く、ノードによって保存されるエントリーの概数。 |
5.9.3.2. データアクセス リンクのコピーリンクがクリップボードにコピーされました!
次のメトリクスは、読み取り、書き込み、およびその期間などのキャッシュアクセスを監視します。
5.9.3.2.1. 保存 リンクのコピーリンクがクリップボードにコピーされました!
保存操作は、キャッシュに保存されている値を書き込む、または更新する書き込み操作です。
メトリクス | 説明 |
---|---|
| 保存リクエストの合計数。 |
| すべての保存リクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.3.2.2. 読み取り リンクのコピーリンクがクリップボードにコピーされました!
読み取り操作はキャッシュから値を読み取ります。2 つのグループに分類でき、値が見つかった場合はヒット、見つからなかった場合はミスとなります。
メトリクス | 説明 |
---|---|
| ヒットに該当する読み取りリクエストの合計数。 |
| ヒットに該当するすべての読み取りリクエストの合計所要時間。 |
| ミスに該当する読み取りリクエストの合計数。 |
| ミスに該当するすべての読み取りリクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.3.2.3. 削除 リンクのコピーリンクがクリップボードにコピーされました!
削除操作はキャッシュから値を削除します。2 つのグループに分類でき、値が存在する場合はヒット、値が存在しない場合はミスとなります。
メトリクス | 説明 |
---|---|
| ヒットに該当する削除リクエストの合計数。 |
| ヒットに該当するすべての削除リクエストの合計所要時間。 |
| ミスに該当する削除リクエストの合計数。 |
| ミスに該当するすべての削除リクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.3.3. ロック リンクのコピーリンクがクリップボードにコピーされました!
書き込みおよび削除操作では、値がローカルクラスター内とリモートサイトに複製されるまでロックが保持されます。
正常なクラスターでは、保持されるロックの数は一定に保たれますが、デッドロックによって一時的な急増が生じる可能性があります。
メトリクス | 説明 |
---|---|
| 現在このノードによって保持されているロックの数。 |
5.9.3.4. トランザクション リンクのコピーリンクがクリップボードにコピーされました!
トランザクションキャッシュは、トランザクションを完了するために、One-Phase-Commit と Two-Phase-Commit の両方のプロトコルを使用します。これらのメトリクスは操作時間を追跡します。
PESSMISTIC
ロックモードでは、One-Phase-Commit が使用され、コミットリクエストは作成されません。
正常なクラスターでは、ロールバックの数はゼロになります。デッドロックはまれですが、ロールバックの回数は増加します。
メトリクス | 説明 |
---|---|
| 準備リクエストの合計数。 |
| すべての準備リクエストの合計所要時間。 |
| ロールバックリクエストの合計数。 |
| すべてのロールバックリクエストの合計所要時間。 |
| コミットリクエストの合計数。 |
| すべてのコミットリクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.3.5. 状態遷移 リンクのコピーリンクがクリップボードにコピーされました!
状態遷移は、ノードがクラスターに参加したり、クラスターから離脱したりするときに発生します。保存されたデータのバランスを取り、必要なコピー数を保証する必要があります。
この操作によりリソースの使用量が増加し、全体的なパフォーマンスに悪影響を及ぼします。
メトリクス | 説明 |
---|---|
| ローカルノードが他のノードに要求した処理中のトランザクションセグメントの数。 |
| ローカルノードが他のノードに要求した処理中のセグメントの数。 |
5.9.3.6. クラスターデータレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
クラスターデータレプリケーションが障害の主な原因となる場合があります。これらのメトリクスは、レスポンス時間を報告します。つまり、更新のレプリケートにかかる時間だけでなく、失敗も報告します。
正常なクラスターでは、平均レプリケーション時間はまったく、またはほとんど変動しません。失敗の数は増加しないはずです。
メトリクス | 説明 |
---|---|
| 成功したレプリケーションの合計数。 |
| 失敗したレプリケーションの合計数。 |
| クラスター内でのデータのレプリケートに費やされた平均時間 (ミリ秒)。 |
成功率
次の式を使用して、レプリケーション成功率を計算できます。
(vendor_rpc_manager_replication_count) / (vendor_rpc_manager_replication_count + vendor_rpc_manager_replication_failures)
(vendor_rpc_manager_replication_count)
/
(vendor_rpc_manager_replication_count
+ vendor_rpc_manager_replication_failures)
5.9.3.7. クロスサイトデータレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
このセクションのメトリクスは、クラスターデータレプリケーションと同様に、データを他のサイトにレプリケートするためにかかる時間を測定します。
正常なクラスターでは、クロスサイトレプリケーションの平均時間はまったく、またはほとんど変動しません。
タグ
site=<name>
- 受信サイトを示します。
メトリクス | 説明 |
---|---|
| クロスサイトリクエストの合計数。 |
| すべてのクロスサイトリクエストの合計所要時間。 |
| クロスサイトリクエストの合計数。このメトリクスは、サイトごとのカウンターを使用することで、さらに詳細になります。 |
| すべてのクロスサイトリクエストの合計所要時間。このメトリクスは、サイトごとの所要時間を使用することで、さらに詳細になります。 |
| このノードによって処理されるクロスサイトリクエストの合計数。このメトリクスは、サイトごとのカウンターを使用することで、さらに詳細になります。 |
|
サイトのステータス。値が 1 の場合、オンラインであることを示します。この値は、Data Grid CLI コマンドの |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.9.4. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
メトリクスを使用したトラブルシューティング に戻ります。