高度な Query Insights のリファレンス

ドキュメントのバージョンを選択してください。

このドキュメントでは、AlloyDB Omni の高度な Query Insights の構成パラメータ、テレメトリー ディメンション、オブザーバビリティ ビューと関数について説明します。

高度な Query Insights の有効化とクエリについて詳しくは、高度な Query Insights を使用してクエリのパフォーマンスをモニタリングするをご覧ください。

構成パラメータ

データベースの再起動を必要としないパラメータの変更を適用するには、ALTER SYSTEM SET の後に SELECT pg_reload_conf() を実行します。次の表に、高度な Query Insights の構成パラメータを示します。

パラメータ タイプ デフォルト値 再起動が必要 説明
google_insights_v2.enabled boolean off shared_preload_libraries を使用した最初の有効化の場合は「はい」。`pg_reload_conf()` を使用した後続のリロードの場合は「いいえ」。 インスタンス全体で高度な Query Insights のテレメトリー収集を有効または無効にします。
google_insights_v2.qi_max_query_string_length integer 10240 いいえ(pg_reload_conf() でリロード) 正規化された SQL テンプレートに記録される最大バイト長(1024~ 102400)を設定します。リテラル 値は $1 や $2 などの位置パラメータとしてマスクされます。
google_insights_v2.qi_preserve_comments boolean off いいえ(pg_reload_conf() でリロード) 正規化されたクエリ 文字列内で SQL コメントを保持するかどうかを制御します。
google_insights_v2.qi_track_wait_event_types boolean on いいえ(pg_reload_conf() でリロード) `CPU`、`IO`、`Lock`、`Timeout`、`IPC` などの上位の `wait_class` ボトルネック カテゴリを記録します。
google_insights_v2.qi_track_wait_events boolean on いいえ(pg_reload_conf() でリロード) 詳細な PostgreSQL wait_event 名を記録します。例: DataFileExtend, transactionid, WALWrite。
google_insights_v2.qi_track_client_address boolean off いいえ(pg_reload_conf() でリロード) クエリとクライアント アドレス の統計ビューで接続クライアント IP アドレスを記録します。
google_insights_v2.qi_track_tag boolean off いいえ(pg_reload_conf() でリロード) SQL コメントで SQLCommenter タグなどのタグの追跡を有効にします。
google_insights_v2.qi_track_active_queries boolean off いいえ(pg_reload_conf() でリロード) アクティブなクエリとオープン トランザクションのリアルタイム追跡を有効にします。

ディメンション別のオブザーバビリティ ビューと指標

以降のセクションでは、各テレメトリー ディメンションの google_insights_v2 スキーマで使用可能なオブザーバビリティ ビューと指標列を示します。

クエリ

クエリ ディメンションは、インスタンス全体のクエリの実行統計と正規化された SQL テキストを追跡します。正規化されたクエリテキストで SQL コメントを保持するには、google_insights_v2.qi_preserve_comments を on に設定します。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_query_view
    • observability_service_query_coarse_1_view
    • observability_service_query_coarse_2_view
  • 関連列:
    • query_id: 正規化された SQL クエリのハッシュ ID。
    • query: 正規化された SQL クエリテキスト。
    • database: クエリが実行された論理データベース。
    • username: クエリを実行したデータベース ロール。
    • total_execution_time: 累積実行時間(マイクロ秒)。
    • total_wait_time: 累積待機時間(マイクロ秒)。
    • total_read_time: 累積ディスク読み取り時間(マイクロ秒)。
    • total_write_time: 累積ディスク書き込み時間(マイクロ秒)。
    • total_rows: クエリによって返された行数または影響を受けた行数の合計。
    • total_shared_blocks_hit: 共有バッファ ヒットの合計数。
    • total_shared_blocks_read: ディスクから読み取られた共有ブロックの合計数。
    • count: クエリが実行された合計回数。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。

待機イベントのタイプ

待機イベントのタイプ ディメンションは、google_insights_v2.qi_track_wait_event_types が on(デフォルトで有効)に設定されている場合に、上位の wait_class ボトルネック カテゴリを記録します。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • 関連列:
    • wait_class:待機イベント カテゴリ(IO、Lock、LWLock、CPU、 Internal wait event など)。
    • wait_event: 待機クラス内の詳細な PostgreSQL 待機イベント名。
    • time_spent: 待機イベント タイプの累積待機時間(マイクロ秒)。
    • count: 待機イベント タイプが発生した合計回数。
    • database: 待機イベントが発生した論理データベース。
    • username: 待機イベントに関連付けられたデータベース ロール。
    • tag_id: 関連付けられた SQLCommenter タグセットの数値 ID。
    • tag_string: アプリケーション タグを含む未加工の SQL コメント文字列。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。
    • query_id: クエリのハッシュ ID(observability_service_wait_event_stats_by_query_view 内)。

待機イベント

待機イベント ディメンションは、詳細な PostgreSQL wait_event 名を、 google_insights_v2.qi_track_wait_events が on(デフォルトで有効)に設定されている場合に記録します。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • 関連列:
    • wait_event: 特定の PostgreSQL 待機イベント名(DataFileExtend、DataFileRead、WALWrite、Internal wait event など)。
    • wait_class: 待機イベントが属する待機イベント カテゴリ。
    • time_spent: 待機イベントの累積待機時間(マイクロ秒)。
    • count: 待機イベントが発生した合計回数。
    • database: 待機イベントが発生した論理データベース。
    • username: 待機イベントに関連付けられたデータベース ロール。
    • tag_id: 関連付けられた SQLCommenter タグセットの数値 ID。
    • tag_string: アプリケーション タグを含む未加工の SQL コメント文字列。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。
    • query_id: クエリのハッシュ ID(observability_service_wait_event_stats_by_query_view 内)。

データベース

データベース ディメンションは、google_insights_v2.enabled が on に設定されている場合に、論理データベースごとのリソース消費量とクエリ量を追跡します。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_db_load_conn_view
    • observability_service_query_view
    • observability_service_wait_event_no_query_view
  • 関連列:
    • database: 論理データベース名。
    • username: データベースでクエリを実行したデータベース ロール。
    • total_execution_time: データベース内の累積クエリ実行時間(マイクロ秒)。
    • total_wait_time: データベース内の累積待機時間(マイクロ秒)。
    • count: データベース内のクエリ実行の合計数。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。

ユーザーとクライアント IP アドレス

ユーザーとクライアント IP アドレスのディメンションは、デフォルトでデータベース ロール(username)ごとに負荷を追跡します。接続クライアント IP アドレス (client_address)も収集するには、google_insights_v2.qi_track_client_address を on(offがデフォルト)に設定する必要があります。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_query_view
    • observability_service_client_address_stats_by_query_view
  • 関連列:
    • client_address: 接続クライアント IP アドレス( google_insights_v2.qi_track_client_address が on の場合)。
    • username: データベース ロール名。
    • database: 論理データベース名。
    • query_id: 正規化された SQL クエリのハッシュ ID。
    • time_spent: クライアント アドレスの累積クエリ実行時間(マイクロ秒)。
    • count: ユーザーまたはクライアント IP アドレスのクエリ実行の合計数。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。

タグ

タグ ディメンションは、アプリケーション タグ メタデータ別にクエリ実行の統計情報を追跡します。タグ指標を収集するには、google_insights_v2.qi_track_tag を on(デフォルトは off)に設定する必要があります。off に設定すると、これらのビューは行を返しません。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • observability_service_db_load_tag_view
    • observability_service_tag_view
  • 関連列:
    • tag_id: アプリケーション タグの組み合わせの数値 ID。
    • tag_string: アプリケーション タグを含む未加工の SQL コメント文字列。
    • application: SQLCommenter タグから抽出されたアプリケーション名。
    • db_driver: SQLCommenter タグから抽出されたデータベース ドライバ。
    • framework_name: SQLCommenter タグから抽出されたアプリケーション フレームワーク名。
    • framework_controller: SQLCommenter タグから抽出されたフレームワーク コントローラ。
    • framework_action: SQLCommenter タグから抽出されたフレームワーク アクション。
    • framework_route: SQLCommenter タグから抽出されたフレームワーク ルート。
    • traceparent: SQLCommenter タグから抽出された W3C トレース コンテキスト。
    • database: タグ付きクエリが実行された論理データベース名。
    • username: タグ付きクエリを実行したデータベース ロール。
    • total_execution_time: タグの組み合わせの累積クエリ実行時間(マイクロ秒)。
    • count: タグの組み合わせのクエリ実行の合計数。
    • recorded_on: テレメトリー間隔が記録されたときのタイムスタンプ。

アクティブなクエリ

アクティブなクエリ ディメンションは、実行中のクエリとオープン トランザクションをリアルタイムで追跡します。アクティビティ セッションをクエリするには、google_insights_v2.qi_track_active_queries を on に設定する必要があります。off に設定すると、これらのビューのクエリでエラーが返されます。

このディメンションでは、次のビューと列を使用できます。

  • オブザーバビリティ ビュー:
    • stat_activity
    • stat_activity_v3
  • 関連列:
    • pid: バックエンド プロセス ID。セッションを終了するには、プロセス ID を PostgreSQL pg_terminate_backend(pid) システム関数に渡します。
    • normalized_query_hash: 正規化された SQL クエリのハッシュ ID。
    • normalized_query: アクティブなクエリの正規化された SQL テキスト。
    • state: 現在のバックエンドの状態(active、idle in transaction など)。
    • backend_start: 現在のセッションが開始されたときのタイムスタンプ。セッション継続時間を秒単位で計算するには、EXTRACT(EPOCH FROM (clock_timestamp() - backend_start)) を計算します。
    • xact_start: 現在のトランザクションが開始されたときのタイムスタンプ。トランザクションの実行時間を秒単位で計算するには、EXTRACT(EPOCH FROM (clock_timestamp() - xact_start)) を計算します。
    • query_start: 現在のクエリが開始されたときのタイムスタンプ。クエリの実行時間を秒単位で計算するには、EXTRACT(EPOCH FROM (clock_timestamp() - query_start)) を計算します。
    • wait_event_type: バックエンドが待機している場合の待機イベント カテゴリ。
    • wait_event: バックエンドが待機している場合の待機イベント名。
    • database: アクティブなセッションの論理データベース名。
    • username: アクティブなセッションのデータベース ロール名。
    • application_name: 接続アプリケーション名。
    • client_addr: 接続クライアント IP アドレス。