このドキュメントでは、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() を使用した後続の再読み込みの場合は No。 |
インスタンス全体で高度な 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() で再読み込み) |
DataFileExtend、transactionid、WALWrite などの詳細な PostgreSQL wait_event 名を記録します。 |
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_viewobservability_service_query_coarse_1_viewobservability_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_viewobservability_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)。
待機イベント
待機イベント ディメンションは、google_insights_v2.qi_track_wait_events が on に設定されている場合(デフォルトで有効)、詳細な PostgreSQL wait_event 名を記録します。
このディメンションでは、次のビューと列を使用できます。
- オブザーバビリティ ビュー:
observability_service_wait_event_no_query_viewobservability_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_viewobservability_service_query_viewobservability_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_viewobservability_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_viewobservability_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_activitystat_activity_v3
- 関連する列:
pid: バックエンド プロセス ID。セッションを終了するには、プロセス ID を PostgreSQL のpg_terminate_backend(pid)システム関数に渡します。normalized_query_hash: 正規化された SQL クエリのハッシュ識別子。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 アドレス。