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

Query Insights は、既存の APM ツールと統合でき、これによりお好みのツールを使用して、クエリの問題をモニタリングし、トラブルシューティングできます。Query Insights は、OpenCensus 標準と OpenTelemetry 標準をサポートし、Google Cloud Observability API を通じて APM ツールで利用可能なクエリ指標とトレースデータを作成します。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 は、デフォルトのクエリ文字列サイズ 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 を超える多くのクライアントがインスタンスにトラフィックを送信している場合、クエリ分析情報では、累積実行時間の増加に最も大きく貢献したクライアント アドレスがキャプチャされます。そのため、他のクライアント アドレスに関連する統計情報は省略される場合があります。

  • クライアント IP アドレスのトラッキングが有効になっている場合、クライアント アドレス トラフィックの変化により、新しい上位クライアント アドレスがエクスポートされるまでに時間がかかるため、指標に一時的なギャップが生じることがあります。たとえば、アーキテクチャによっては、クライアントの再起動や再作成(Kubernetes Pod が別のマシンからトラフィックを送信するなど)によって、このギャップが発生する可能性があります。

次のステップ