このドキュメントでは、AI アシスタンスを使用して Spanner リソースのモニタリングとトラブルシューティングを行う方法について説明します。Spanner と Gemini Cloud Assist の AI を活用したトラブルシューティング ツールを使用して、データベースの負荷が高い問題をトラブルシューティングできます。
始める前に
Google Cloud ユーザー アカウントとプロジェクト用に Gemini Cloud Assist を設定します。Gemini Cloud Assist を設定した後、サービスが反映されるまでに数分かかることがあります。伝播が完了してから、Spanner で AI を活用したトラブルシューティングを有効にします。
必要なロールと権限
AI 支援によるトラブルシューティングの使用に必要な権限を取得するには、Spanner インスタンスをホストするプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Spanner データベース ユーザー (
roles/spanner.databaseUser) - データベース分析情報閲覧者 (
roles/databaseinsights.viewer) - Gemini Cloud Assist 調査オーナー (
roles/geminicloudassist.investigationOwner)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Gemini Cloud Assist の調査を使用するために必要なロールと権限の詳細については、Gemini Cloud Assist の調査を使用した問題のトラブルシューティングをご覧ください。
Gemini Cloud Assist を開く
Spanner で Gemini Cloud Assist を使用する手順は次のとおりです。
- Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。 Spanner インスタンスに移動
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [Cloud Assist] パネルを開くには、 [Gemini Cloud Assist チャットを開く、または閉じる] をクリックします。
- [Cloud Assist パネル] で、目的の情報を表すプロンプトを入力します。
- プロンプトを入力したら、[
メッセージを送信] をクリックします。
Gemini は、過去 1 時間の情報に基づいてプロンプトに応答します。
高いデータベース負荷のトラブルシューティング
Google Cloud コンソールの [Query Insights] ダッシュボードまたは [System Insights] ダッシュボードを利用すると、システムでデータベースの負荷が平均よりも高い場合に、データベースを分析し、イベントのトラブルシューティングを行うことができます。Spanner では、選択した期間の 24 時間前のデータを基に、データベースの予想負荷が算出されます。負荷イベントの増加の原因を調べ、パフォーマンス低下の原因を分析できます。また、Spanner では、データベースを最適化してパフォーマンスを高めるための推奨事項も提供されます。
データベースの負荷が高い場合のトラブルシューティングに AI アシスタンス機能を使用するには、 Google Cloud コンソールの [システム分析情報] ダッシュボードまたは [Query Insights] ダッシュボードに移動します。
Query Insights ダッシュボード
次の手順に沿って、[Query Insights] ダッシュボードで AI アシスタンス機能を使用してデータベースの負荷が高い問題のトラブルシューティングを行います。
- Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。 Spanner インスタンスに移動
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- 省略可: [データベース] リストで、データベースをクリックします。
- [Query Insights] をクリックして [Query Insights] ダッシュボードを開きます。
- 省略可: [期間] フィルタを使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。
- 問題。調査中の問題の説明(調査の開始時間と終了時間を含む)。
- 観察。問題に関する観察結果のリスト。たとえば、クエリのロック待機率が予想よりも高いなど、ロック競合の詳細が含まれます。
- 仮説。実行速度の遅いクエリに対処するために AI が推奨するアクションのリスト。
クエリ実行時間別のデータベース負荷が高いと思われる特定の箇所のデータを見るには、グラフのその部分を拡大します。拡大表示するには、グラフの一部をクリックして選択します。
[合計 CPU 使用率(すべてのクエリ)] グラフで、[パフォーマンスを調査] ボタンをクリックして、Gemini Cloud Assist の AI アシスタント機能を使ったデータベース負荷が高い問題のトラブルシューティングを開始します。
約 2 分後に、[調査の詳細] ペインが開き、次のセクションが表示されます。
システム分析情報ダッシュボード
次の手順に沿って、[システム分析情報] ダッシュボードで AI アシスタンス機能を使用してデータベースの負荷が高い問題のトラブルシューティングを行います。
- Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。 Spanner インスタンスに移動
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- 省略可: [データベース] で、データベースをクリックします。
- ナビゲーション メニューで [システム分析情報] をクリックします。
- 省略可: [期間] フィルタを使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。
負荷が高いと思われる特定の箇所のデータを見るには、グラフのその部分を拡大します。たとえば、負荷が高い箇所では、CPU 使用率が 100% に近い値で示されている可能性があります。拡大表示するには、グラフの一部をクリックして選択します。
[調査を開始] ボタンをクリックして、Gemini Cloud Assist の AI アシスタントによるデータベース負荷のトラブルシューティングを開始します。
約 2 分後に、[調査の詳細] ペインが開き、次のセクションが表示されます。
- 問題。調査の開始時刻と終了時刻など、調査対象の問題の説明。
- 観察。問題に関する観察結果のリスト。たとえば、クエリのロック待機率が予想よりも高いなど、ロック競合の詳細が含まれます。
- 仮説。実行速度の遅いクエリに対処するために AI が推奨するアクションのリスト。
高いデータベース負荷について分析する
AI アシスタント機能を使用すると、データベースの負荷について詳しく分析し、トラブルシューティングを行うことができます。
分析期間
Spanner では、[Query Insights] ダッシュボードまたは [システム分析情報] ダッシュボードのデータベース負荷グラフで選択した期間に基づいて、データベースが分析されます。24 時間未満の期間を選択した場合は、その期間全体が分析されます。24 時間を超える期間を選択した場合は、直近の 24 時間のみが分析対象となります。
データベースのベースライン パフォーマンス分析の計算を行うために、分析期間には 24 時間のベースライン期間が含まれます。選択した期間が月曜日以外の曜日である場合、選択した期間の直前 24 時間がベースラインとして使用されます。選択した期間が月曜日の場合は、選択した期間の 7 日前がベースラインとして使用されます。
指標分析
Spanner で分析を開始すると、次の指標を含むさまざまな指標に大幅な変化がないかどうかが確認されます。
- CPU 使用率
- 読み取りと書き込みのレイテンシ、P50 と P99
- 読み取りと書き込みの秒間クエリ数(QPS)
- ノード数
- セッション指標
- ロック待機時間
- トランザクション中止数
- クエリの統計情報
- トランザクションの統計情報
- ロックの統計情報
- スプリットの統計情報
Spanner では、分析期間におけるパフォーマンス データ内のデータベースのベースライン集計データが比較されます。主要な指標のしきい値の大幅な変化が検出されると、データベースで発生するおそれのある状況が示されます。特定された状況は、選択した期間においてデータベースの負荷が高くなっている根本原因を説明している可能性があります。
推奨事項
Gemini Cloud Assist が分析を完了すると、[調査の詳細] ペインの [仮説] セクションに、問題の解決に役立つ実用的な分析情報が表示されます。
場合によっては、分析結果に基づいた推奨事項が得られないこともあります。
次のステップ
- より適したプロンプトを作成する方法を確認する。
- Gemini Cloud Assist パネルの使用方法を確認する。
- AI アシスタンスと開発に Gemini を使用するを読む
- Gemini アシスタンスを使用して SQL を記述する。
- レイテンシ指標について。
- 高い CPU 使用率について調査する。
- Spanner のパフォーマンスの詳細を確認する。
- システム分析情報を使用してインスタンスをモニタリングする。