グローバルタグ
cache=<name>
-
キャッシュ名。
これはメトリクスを使用したトラブルシューティングガイドの一部です。
メトリクスはKeycloakで有効にする必要があります。詳細については、メトリクスによる洞察の獲得ガイドに従ってください。
メトリクスを収集する監視システム。
グローバルタグ
cache=<name>
キャッシュ名。
これらの2つのメトリクスを使用して、キャッシュ内のエントリ数を監視します。キャッシュがクラスタ化されている場合、各エントリにはオーナーノードと、異なるノードのバックアップコピーがゼロ個以上あります。
ユニークエントリサイズメトリクスを合計して、クラスタの合計エントリ数を取得します。 |
メトリクス | 説明 |
---|---|
|
ノードによって格納されているおおよそのエントリ数(バックアップコピーを含む)。 |
|
ノードによって格納されているおおよそのエントリ数(バックアップコピーを除く)。 |
以下のメトリクスは、キャッシュアクセス(読み取り、書き込み、およびそれらの期間など)を監視します。
ストア操作は、キャッシュに格納されている値を書き込むまたは更新する書き込み操作です。
メトリクス | 説明 |
---|---|
|
ストアリクエストの合計数。 |
|
すべてのストアリクエストの合計期間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットを利用できます。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
読み取り操作は、キャッシュから値を読み取ります。値が見つかった場合はヒット、見つからなかった場合はミスという2つのグループに分かれます。
メトリクス | 説明 |
---|---|
|
読み取りヒットリクエストの合計数。 |
|
すべての読み取りヒットリクエストの合計期間。 |
|
読み取りミスリクエストの合計数。 |
|
すべての読み取りミスリクエストの合計期間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットを利用できます。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
削除操作は、キャッシュから値を削除します。値が存在する場合はヒット、値が存在しない場合はミスという2つのグループに分かれます。
メトリクス | 説明 |
---|---|
|
削除ヒットリクエストの合計数。 |
|
すべての削除ヒットリクエストの合計期間。 |
|
削除ミスリクエストの合計数。 |
|
すべての削除ミスリクエストの合計期間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットを利用できます。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
|
読み取りおよび削除操作のヒット率
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_miss_times_seconds_count) / (vendor_statistics_hit_times_seconds_count + vendor_statistics_miss_times_seconds_count + vendor_statistics_remove_hit_times_seconds_count + vendor_statistics_remove_miss_times_seconds_count + vendor_statistics_store_times_seconds_count)
エビクションはキャッシュサイズを制限するプロセスであり、満杯になると、新しいエントリをキャッシュするためのスペースを確保するためにエントリが削除されます。Keycloakはデータベースエンティティをusers
、realms
、およびauthorization
にキャッシュするため、データベースアクセスは常にエビクションイベントを伴って進行します。
メトリクス | 説明 |
---|---|
|
エビクションイベントの合計数。 |
エビクション率
エビクションの急速な増加と非常に高いデータベースCPU使用率は、users
またはrealms
キャッシュがスムーズなKeycloakの動作には小さすぎることを意味します。データはデータベースから頻繁に再ロードする必要があるため、応答が遅くなります。十分なメモリが利用可能な場合は、CLIオプションcache-embedded-users-max-count
またはcache-embedded-realms-max-count
を使用して、キャッシュの最大サイズを増やすことを検討してください。
書き込みおよび削除操作は、値がローカルクラスタおよびリモートサイトにレプリケートされるまでロックを保持します。
健全なクラスタでは、保持されているロックの数は一定のままであるはずですが、デッドロックにより一時的なスパイクが発生する可能性があります。 |
メトリクス | 説明 |
---|---|
|
このノードによって現在保持されているロックの数。 |
トランザクショナルキャッシュは、トランザクションを完了するために、One-Phase-CommitプロトコルとTwo-Phase-Commitプロトコルの両方を使用します。これらのメトリクスは、操作期間を追跡します。
PESSMISTIC ロッキングモードはOne-Phase-Commitを使用し、コミットリクエストを作成しません。 |
健全なクラスタでは、ロールバックの数はゼロのままであるはずです。デッドロックはまれであるはずですが、ロールバックの数を増やします。 |
メトリクス | 説明 |
---|---|
|
準備リクエストの合計数。 |
|
すべての準備リクエストの合計期間。 |
|
ロールバックリクエストの合計数。 |
|
すべてのロールバックリクエストの合計期間。 |
|
コミットリクエストの合計数。 |
|
すべてのコミットリクエストの合計期間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットを利用できます。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
状態転送は、ノードがクラスタに参加または離脱するときに発生します。これは、格納されているデータのバランスを取り、目的のコピー数を保証するために必要です。
この操作はリソース使用量を増加させ、全体的なパフォーマンスに悪影響を与えます。
メトリクス | 説明 |
---|---|
|
ローカルノードが他のノードからリクエストした、インフライトトランザクションセグメントの数。 |
|
ローカルノードが他のノードからリクエストした、インフライトセグメントの数。 |
クラスタデータレプリケーションは、主な障害の原因となる可能性があります。これらのメトリクスは、応答時間(つまり、更新をレプリケートするのにかかる時間)だけでなく、障害も報告します。
健全なクラスタでは、平均レプリケーション時間は安定しているか、わずかな変動がある程度です。障害の数は増加しないはずです。 |
メトリクス | 説明 |
---|---|
|
成功したレプリケーションの合計数。 |
|
失敗したレプリケーションの合計数。 |
|
クラスタ内のデータをレプリケートするのに費やされた平均時間(ミリ秒単位)。 |
成功率
レプリケーションの成功率を計算するために式を使用できます
(vendor_rpc_manager_replication_count) / (vendor_rpc_manager_replication_count + vendor_rpc_manager_replication_failures)
メトリクスを使用したトラブルシューティングに戻ります。