メトリクスを使用したトラブルシューティング

どのようなメトリクスが存在し、エラーやパフォーマンスの問題のトラブルシューティングにどのように使用できるかを学びます。

稼働中の Keycloak デプロイメントにおいて、システムがどのように動作し、サービスレベル目標 (SLO) を満たしているかどうかを理解することは重要です。 SLO の詳細については、サービスレベルインジケーターによるパフォーマンスの監視 ガイドに進んでください。

このガイドでは、「SLO が満たされていない場合、何をすればよいか?」という質問に答えるための指針を提供します。

Keycloak はいくつかのコンポーネントで構成されており、そのうちの 1 つの問題または設定ミスがサービスレベルインジケーターを望ましくない数値に変動させる可能性があります。

このガイドで提供されるガイダンスは、以下の例で説明されています

観察: レイテンシーのサービスレベル目標が満たされていません。

問題を示すメトリクス:

  1. Keycloak のデータベース接続プールはしばしば枯渇し、プールから接続を取得するためにキューイングされているスレッドがあります。

  2. Keycloak の users キャッシュのヒット率は低い割合で、約 5% です。 これは、20 回のユーザー検索のうち 1 回だけがキャッシュからユーザーデータを取得でき、残りはデータベースからロードする必要があることを意味します。

提案される可能性のある緩和策

  • users キャッシュのサイズをより大きな数値に増やすことで、データベースからの読み取り回数を減らすことができます。

  • 接続プールの接続数を増やすこと。 これは、データベースのメトリクスで確認し、より高い負荷に合わせて調整する必要があります。たとえば、利用可能なプロセッサ数を増やすなどです。

  • このガイドは Keycloak メトリクスに焦点を当てています。 データベース自体のトラブルシューティングは範囲外です。

  • このガイドは一般的なガイダンスを提供します。 構成の変更は、必ずパフォーマンス テストを実施して、古い構成と新しい構成の問題のメトリクスを比較して確認する必要があります。

以下のメトリクスの Grafana ダッシュボードは、ダッシュボードでのアクティビティの可視化 ガイドにあります。

このページについて