Query Insights の概要

このページでは、Insights ツールの概要について説明します。すぐにツールを使用するには、Query Insights を使用したクエリ パフォーマンスの問題のトラブルシューティングをご覧ください。

はじめに

Query Insights では、Cloud SQL データベースに対するクエリ パフォーマンスの問題を検出、診断、防止できます。セルフサービス方式で直観的にわかりやすく、単なる検出機能を超えた、パフォーマンスの問題の根本原因を特定できる診断情報が提供されます。

Query Insights では、アプリケーション レベルでパフォーマンスをモニタリングでき、モデル、ビュー、コントローラ、ルート、ユーザー、ホストによるアプリケーション スタック全体で、問題のあるクエリの元をトレースできます。Query Insights ツールは、オープン標準と API を使用して、既存のアプリケーション モニタリング(APM)ツールや Google Cloud サービスと統合できます。これにより、お好みのツールを使用してクエリの問題をモニタリングし、トラブルシューティングできます。

クエリの指標は、Query Insights ダッシュボードで確認できます。ダッシュボードには、ユーザー、データベース、IP アドレス、期間、CPU 容量、CPU と CPU 待機、IO 待機、ロック待機の各クエリに関するデータベース負荷を確認できる一連のフィルタが用意されています。

Query Insights を使用するメリット

Query Insights は、クエリのパフォーマンスに関する問題を検出して修正できるモニタリングと診断の機能を提供します。Query Insights ダッシュボードは、クエリのパフォーマンスの問題を早い段階で特定し、検出から解決まで単一のインターフェースで扱うことができます。組み込みのビジュアル クエリプランは、問題のトラブルシューティングで根本原因の発見に役立ちます。また、コンテキスト内のエンドツーエンドのアプリケーション トレースを使用して、問題のあるクエリのソースを見つけることもできます。

Query Insights では、支払い、在庫、ビジネス分析、出荷など、クエリに関連付けられているビジネス ロジックでクエリにタグを付けて、アプリケーション中心の観点からクエリ パフォーマンスをモニタリングできます。また、Query Insights は、アプリケーション中心のモニタリングを提供して、オブジェクト リレーショナル マッピング(ORM)を使用して構築されたアプリケーションのパフォーマンスの問題を診断できるようにします。Query Insights ツールは、オープンソースのライブラリである SQL Commenter を使用して ORM を自動的に計測します。このインストルメンテーションにより、問題の原因となっているアプリケーション コードを特定できます。

Query Insights は、既存の APM ツールと統合でき、これによりお好みのツールを使用して、クエリの問題をモニタリングし、トラブルシューティングできます。Query Insights は、OpenCensus 標準と OpenTelemetry 標準をサポートし、Google Cloud のオペレーション スイート API を通じて APM ツールで利用可能なクエリ指標とトレースデータを作成します。Query Insights は Cloud Monitoring と統合されており、これによりクエリ指標またはタグに関するカスタム ダッシュボードとアラートを作成し、メール、SMS、Slack、PagerDuty などを使用して通知を受け取ることができます。

料金

この機能で追加料金が発生することはありません。Query Insights ダッシュボードから、1 週間のデータにアクセスできます。API リクエストについては、Cloud Monitoring の料金をご覧ください。Cloud Monitoring には、追加費用なしで使用できる枠が用意されています。

セキュリティ

Cloud SQL ダッシュボードにアクセスできるユーザーは、Query Insights ダッシュボードで Query Insights 指標にアクセスできます。インスタンスを更新する権限がある場合は、Query Insights を構成できます。Cloud SQL インスタンスに必要な権限の一覧については、Cloud SQL プロジェクトのアクセス制御をご覧ください。

Query Insights 指標は保存時に暗号化されます。

プライバシー

Query Insights は、正規化されたクエリのみを保存し、表示します。クエリ文字列の定数値はすべて削除されます。クエリプランのトレースは、定数値を収集、保存しません。デフォルトでは、Query Insights は IP アドレスやタグの情報を収集しませんが、Query Insights でこれらの情報を収集するようにすることもできます。Query Insights でこの情報を収集するように設定した場合は、後の段階で設定を無効にして、Query Insights による情報の収集を停止できます。

パフォーマンス

Query Insight の PostgreSQL 拡張機能は、postgres フックを使用して実装されたクエリ指標と実行プランを記録します。指標と実行プランは、共有メモリテーブルに postgres テーブルとして保存されます。負荷の高いディスク IO オペレーションを避けることで、Query Insights が常にオンになり、そのパフォーマンスのオーバーヘッドが小さくなることが期待されます。Query Insights は、デフォルトのクエリ文字列サイズ 1,024 バイトに対して 12 MB の RAM を使用します。クエリ文字列サイズが増加すると、RAM の使用量は増加します。指標は、クエリの完了から数分以内に Query Insights で利用できるようになると想定されています。

ストレージ

Query Insights は、Cloud SQL インスタンスの保存容量を占有しません。指標は、Cloud Monitoring のシステム指標に保存されます。Cloud Monitoring のデータ保持ポリシーを確認することが重要です。

Query Insights のトレースは Cloud Trace に保存されます。Cloud Trace のデータ保持ポリシーを確認することが重要です。

互換性

Query Insights は、Cloud SQL のすべてのマシンタイプで PostgreSQL でサポートされ、すべての GCP リージョンで利用可能です。

次のステップ