このドキュメントでは、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_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内)。
待機イベント
待機イベント ディメンションは、詳細な PostgreSQL wait_event 名を、
google_insights_v2.qi_track_wait_events が on(デフォルトで有効)に設定されている場合に記録します。
このディメンションでは、次のビューと列を使用できます。
- オブザーバビリティ ビュー:
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 を PostgreSQLpg_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 アドレス。