このページでは、Query Insights ツールの概要について説明します。このツールの使い方については、Query Insights を使用してクエリのパフォーマンスを向上させるをご覧ください。
Query Insights を使用すると、AlloyDB データベースのクエリ パフォーマンスの問題を検出、診断、防止できます。このツールが提供する、単なる検出機能を超えた、セルフサービス方式の直観的にわかりやすいモニタリングと診断の情報は、パフォーマンスに関する問題の根本原因を特定するのに役立ちます。
Query Insights では、アプリケーション レベルでパフォーマンスをモニタリングでき、モデル、ビュー、コントローラ、ルート、ユーザー、ホストによるアプリケーション スタック全体で、問題のあるクエリの元をトレースできます。Query Insights ツールは、オープン標準と API を使用して、既存のアプリケーション モニタリング(APM)ツールや Google Cloudサービスと機能を連携できます。これにより、お好みのツールを使用してクエリの問題をモニタリングし、トラブルシューティングできます。
クエリの指標は Query Insights ダッシュボードで確認できます。ダッシュボードには、ユーザー、データベース、IP アドレス、期間、CPU 容量、CPU と CPU 待機、IO 待機、ロック待機の各クエリに関するデータベース負荷を確認できる一連のフィルタが用意されています。
Query Insights を使用するメリット
Query Insights には、クエリのパフォーマンスに関する問題を検出して修正できるモニタリングと診断の機能が備わっています。Query Insights ダッシュボードを利用することで、クエリのパフォーマンスの問題を早い段階で特定し、検出から解決まで単一のインターフェースで対応できます。組み込みのビジュアル クエリプランは、問題のトラブルシューティングで根本原因の発見に役立ちます。また、コンテキスト内のエンドツーエンドのアプリケーション トレースを使用して、問題のあるクエリのソースを見つけることもできます。
Query Insights では、支払い、在庫、ビジネス分析、出荷など、クエリに関連付けられているビジネス ロジックでクエリにタグを付けて、アプリケーション中心の観点からクエリ パフォーマンスをモニタリングできます。また、アプリケーションに焦点を当てたモニタリングにより、オブジェクト リレーショナル マッピング(ORM)を使用して構築されたアプリケーションのパフォーマンスの問題を診断できます。Query Insights ツールは、オープンソースのライブラリである SQL Commenter を使用して ORM を自動的に計測します。このインストルメンテーションにより、問題の原因となっているアプリケーション コードを特定できます。
Query Insights を既存の APM ツールと連携させることで、好きなツールを使ってクエリの問題をモニタリングし、トラブルシューティングできます。Query Insights は OpenCensus 標準と OpenTelemetry 標準に対応しており、APM ツールで利用可能なクエリ指標とトレースデータを Google Cloud Observability API を通じて入手できます。Query Insights は Cloud Monitoring と機能連携しているため、クエリ指標またはタグに関するカスタム ダッシュボードとアラートを作成し、メール、SMS、Slack、PagerDuty などを使用して通知を受け取ることができます。
料金
この機能で追加料金が発生することはありません。Query Insights ダッシュボードから 1 週間分のデータにアクセスできます。API リクエストについては、Cloud Monitoring の料金をご覧ください。Cloud Monitoring には、追加費用なしで使用できる枠が用意されています。
セキュリティ
AlloyDB ダッシュボードにアクセスできるユーザーは、Query Insights ダッシュボード上で Query Insights の指標にアクセスできます。
Query Insights の指標は保存時に暗号化されます。
プライバシー
Query Insights では、正規化されたクエリのみが保存、表示されます。クエリ文字列の定数値はすべて削除されます。クエリプランのトレースは、定数値を収集、保存しません。デフォルトでは、IP アドレスとタグ情報が収集されます。
パフォーマンス
Query Insight の PostgreSQL 拡張機能は、postgres フックを使用して実装されたクエリ指標と実行プランを記録します。指標と実行プランは、共有メモリテーブルに postgres テーブルとして保存されます。負荷の高いディスク IO オペレーションを避けることで、Query Insights が常にオンになり、そのパフォーマンスのオーバーヘッドが小さくなることが期待されます。Query Insights は、デフォルトのクエリ文字列サイズ 1,024 バイトに対して 12 MB の RAM を使用します。クエリ文字列サイズが増加すると、RAM の使用量は増加します。指標は、クエリの完了から数分以内に Query Insights で利用できるようになると想定されています。
ストレージ
Query Insights は、AlloyDB インスタンスの保存容量を占有しません。指標は Cloud Monitoring のシステム指標に保存されます。Cloud Monitoring のデータ保持ポリシーを確認することが重要です。
Query Insights のトレースは Cloud Trace に保存されます。Cloud Trace のデータ保持ポリシーを確認することが重要です。
互換性
Query Insights はすべての AlloyDB マシンタイプでサポートされており、すべての Google Cloud Platform リージョンで利用できます。
制限事項
クエリ分析情報には次の制限があります。
クライアント IP アドレスのトラッキングが有効になっていて、100 を超える多くのクライアントがインスタンスにトラフィックを送信している場合、Query Insights では、累積実行時間の最も長いクライアント アドレスがキャプチャされます。そのため、他のクライアント アドレスに関連する統計情報は省略される場合があります。
クライアント IP アドレスのトラッキングを有効にしている場合、クライアントのアドレス トラフィックが変わると、指標に一時的な空白が生じることがあります。これは、新しい上位クライアント アドレスがエクスポートされるまでに時間がかかるためです。たとえば、クライアントの再起動や再作成(Kubernetes Pod が別のマシンからトラフィックを送信するなど)が発生すると、アーキテクチャによっては、この空白が生じる可能性があります。