5.8. マルチサイトデプロイメント用の埋め込み Infinispan メトリクス
メトリクスを使用してキャッシュの健全性を監視します。
これは、メトリクスを使用したトラブルシューティング 章の一部です。
5.8.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat build of Keycloak でメトリクスを有効にしている。詳細は、メトリクスから洞察を得る の章を参照してください。
- メトリクスを収集する監視システム。
5.8.2. メトリクス リンクのコピーリンクがクリップボードにコピーされました!
グローバルタグ
cache=<name>
- キャッシュの名前。
5.8.2.1. サイズ リンクのコピーリンクがクリップボードにコピーされました!
これら 2 つのメトリクスを使用して、キャッシュ内のエントリーの数を監視します。キャッシュがクラスター化されている場合、各エントリーには所有者ノードと、異なるノードの 0 個以上のバックアップコピーが存在します。
一意のエントリーサイズメトリクスを合計して、クラスターのエントリーの合計数を取得します。
メトリクス | 説明 |
---|---|
| バックアップコピーを含む、ノードによって保存されるエントリーの概数。 |
| バックアップコピーを除く、ノードによって保存されるエントリーの概数。 |
5.8.2.2. データアクセス リンクのコピーリンクがクリップボードにコピーされました!
次のメトリクスは、読み取り、書き込み、およびその期間などのキャッシュアクセスを監視します。
5.8.2.2.1. 保存 リンクのコピーリンクがクリップボードにコピーされました!
保存操作は、キャッシュに保存されている値を書き込む、または更新する書き込み操作です。
メトリクス | 説明 |
---|---|
| 保存リクエストの合計数。 |
| すべての保存リクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.8.2.2.2. 読み取り リンクのコピーリンクがクリップボードにコピーされました!
読み取り操作はキャッシュから値を読み取ります。2 つのグループに分類でき、値が見つかった場合はヒット、見つからなかった場合はミスとなります。
メトリクス | 説明 |
---|---|
| ヒットに該当する読み取りリクエストの合計数。 |
| ヒットに該当するすべての読み取りリクエストの合計所要時間。 |
| ミスに該当する読み取りリクエストの合計数。 |
| ミスに該当するすべての読み取りリクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.8.2.2.3. 削除 リンクのコピーリンクがクリップボードにコピーされました!
削除操作はキャッシュから値を削除します。2 つのグループに分類でき、値が存在する場合はヒット、値が存在しない場合はミスとなります。
メトリクス | 説明 |
---|---|
| ヒットに該当する削除リクエストの合計数。 |
| ヒットに該当するすべての削除リクエストの合計所要時間。 |
| ミスに該当する削除リクエストの合計数。 |
| ミスに該当するすべての削除リクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
users
および realms
キャッシュの場合、データベースの無効化は削除操作に変換されます。これらのメトリクスは、データベースエンティティーがどのくらいの頻度で変更され、そのためにキャッシュから削除されるかを示す優れた指標です。
Hit Ratio for read and remove operations
式を使用して、Prometheus などのシステムのキャッシュのヒット率を計算できます。たとえば、読み取り操作のヒット率は次のように表されます。
vendor_statistics_hit_times_seconds_count / (vendor_statistics_hit_times_seconds_count + vendor_statistics_miss_times_seconds_count)
vendor_statistics_hit_times_seconds_count
/
(vendor_statistics_hit_times_seconds_count
+ vendor_statistics_miss_times_seconds_count)
Read/Write ratio
上記のメトリクスを使用すると、式を使用してキャッシュの読み取り/書き込み比率を計算できます。
5.8.2.2.4. エビクション リンクのコピーリンクがクリップボードにコピーされました!
エビクションは、キャッシュサイズを制限するプロセスであり、いっぱいになるとエントリーが削除され、新しいエントリーをキャッシュするためのスペースが確保されます。Red Hat build of Keycloak は、users
、realms
、authorization
内のデータベースエンティティーをキャッシュするため、データベースアクセスは常にエビクションイベントで進行します。
メトリクス | 説明 |
---|---|
| エビクションイベントの合計数。 |
エビクション率
エビクションの急増と非常に高いデータベース CPU 使用率は、users
または realms
のキャッシュが小さすぎて、データベースからデータを頻繁に再ロードする必要があるためレスポンスが遅くなり、Red Hat build of Keycloak の操作がスムーズに実行できないことを意味します。十分なメモリーが利用可能な場合は、CLI オプションの cache-embedded-users-max-count
または cache-embedded-realms-max-count
を使用して、最大キャッシュサイズを増やすことを検討してください。
5.8.2.3. トランザクション リンクのコピーリンクがクリップボードにコピーされました!
トランザクションキャッシュは、トランザクションを完了するために、One-Phase-Commit と Two-Phase-Commit の両方のプロトコルを使用します。これらのメトリクスは操作時間を追跡します。
PESSMISTIC
ロックモードでは、One-Phase-Commit が使用され、コミットリクエストは作成されません。
正常なクラスターでは、ロールバックの数はゼロになります。デッドロックはまれですが、ロールバックの回数は増加します。
メトリクス | 説明 |
---|---|
| 準備リクエストの合計数。 |
| すべての準備リクエストの合計所要時間。 |
| ロールバックリクエストの合計数。 |
| すべてのロールバックリクエストの合計所要時間。 |
| コミットリクエストの合計数。 |
| すべてのコミットリクエストの合計所要時間。 |
ヒストグラムを有効にすると、パーセンタイルバケットが利用可能になります。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットを収集して公開すると、デプロイメントのパフォーマンスに悪影響を与える可能性があります。
5.8.3. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
メトリクスを使用したトラブルシューティング に戻るか、外部 Data Grid メトリクス に進みます。