Riferimento di Query Insights avanzato

Seleziona una versione della documentazione:

Questo documento descrive i parametri di configurazione, le dimensioni della telemetria e le visualizzazioni e le funzioni di osservabilità per gli insight sulle query avanzati in AlloyDB Omni.

Per saperne di più sull'attivazione e sull'esecuzione di query sugli insight sulle query avanzati, consulta Monitorare le prestazioni delle query utilizzando gli insight sulle query avanzati.

Parametri di configurazione

Per applicare le modifiche ai parametri che non richiedono il riavvio del database, esegui ALTER SYSTEM SET seguito da SELECT pg_reload_conf(). La tabella seguente descrive i parametri di configurazione per gli insight sulle query avanzati:

Parametro Tipo Valore predefinito Riavvio richiesto Descrizione
google_insights_v2.enabled boolean off Sì per l'attivazione iniziale con shared_preload_libraries. No per un ricaricamento successivo con pg_reload_conf(). Attiva o disattiva la raccolta di dati di telemetria di Query Insights avanzati nell'istanza.
google_insights_v2.qi_max_query_string_length integer 10240 No (ricarica con pg_reload_conf()) Imposta la lunghezza massima in byte (1024 a 102400) registrata per i modelli SQL normalizzati, in cui i valori letterali vengono mascherati come parametri posizionali come $1 e $2.
google_insights_v2.qi_preserve_comments boolean off No (ricarica con pg_reload_conf()) Controlla se i commenti SQL vengono conservati all'interno delle stringhe di query normalizzate.
google_insights_v2.qi_track_wait_event_types boolean on No (ricarica con pg_reload_conf()) Registra le categorie di colli di bottiglia wait_class di alto livello, come CPU, IO, Lock, Timeout e IPC.
google_insights_v2.qi_track_wait_events boolean on No (ricarica con pg_reload_conf()) Registra i nomi granulari di wait_event PostgreSQL, come DataFileExtend, transactionid e WALWrite.
google_insights_v2.qi_track_client_address boolean off No (ricarica con pg_reload_conf()) Registra gli indirizzi IP client di connessione nelle visualizzazioni delle statistiche delle query e degli indirizzi client statistiche.
google_insights_v2.qi_track_tag boolean off No (ricarica con pg_reload_conf()) Consente di monitorare i tag, ad esempio SQLCommenter i tag, nei commenti SQL.
google_insights_v2.qi_track_active_queries boolean off No (ricarica con pg_reload_conf()) Consente il monitoraggio in tempo reale delle query attive e delle transazioni aperte.

Visualizzazioni e metriche di osservabilità per dimensione

Le sezioni seguenti elencano le visualizzazioni di osservabilità e le colonne delle metriche disponibili nello schema google_insights_v2 per ogni dimensione di telemetria.

Query

La dimensione delle query monitora le statistiche di esecuzione e il testo SQL normalizzato per le query nell'istanza. Per conservare i commenti SQL nel testo della query normalizzato, imposta google_insights_v2.qi_preserve_comments su on.

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_query_view
    • observability_service_query_coarse_1_view
    • observability_service_query_coarse_2_view
  • Colonne correlate:
    • query_id: identificatore hash della query SQL normalizzata.
    • query: testo della query SQL normalizzato.
    • database: database logico in cui è stata eseguita la query.
    • username: ruolo del database che ha eseguito la query.
    • total_execution_time: tempo di esecuzione cumulativo in microsecondi.
    • total_wait_time: tempo di attesa cumulativo in microsecondi.
    • total_read_time: tempo di lettura cumulativo del disco in microsecondi.
    • total_write_time: tempo di scrittura cumulativo del disco in microsecondi.
    • total_rows: numero totale di righe restituite o interessate dalla query.
    • total_shared_blocks_hit: numero totale di hit del buffer condiviso.
    • total_shared_blocks_read: numero totale di blocchi condivisi letti dal disco.
    • count: numero totale di volte in cui la query è stata eseguita.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.

Tipi di eventi di attesa

La dimensione dei tipi di eventi di attesa registra le categorie di colli di bottiglia wait_class di alto livello quando google_insights_v2.qi_track_wait_event_types è impostato su on (impostazione predefinita).

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Colonne correlate:
    • wait_class: categoria di eventi di attesa, ad esempio IO, Lock, LWLock, CPU o Internal wait event.
    • wait_event: nome dell'evento di attesa granulare di PostgreSQL all'interno della classe di attesa.
    • time_spent: tempo di attesa cumulativo per il tipo di evento di attesa in microsecondi.
    • count: numero totale di volte in cui si è verificato il tipo di evento di attesa.
    • database: database logico in cui si è verificato l'evento di attesa.
    • username: ruolo del database associato all'evento di attesa.
    • tag_id: identificatore numerico del set di tag SQLCommenter associato.
    • tag_string: stringa di commento SQL non elaborata contenente i tag dell'applicazione.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.
    • query_id: identificatore hash della query (in observability_service_wait_event_stats_by_query_view).

Eventi di attesa

La dimensione degli eventi di attesa registra i nomi dei wait_event granulari di PostgreSQL quando google_insights_v2.qi_track_wait_events è impostato su on (impostazione predefinita).

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Colonne correlate:
    • wait_event: nome specifico dell'evento di attesa di PostgreSQL, ad esempio DataFileExtend, DataFileRead, WALWrite o Internal wait event.
    • wait_class: categoria di eventi di attesa a cui appartiene l'evento di attesa.
    • time_spent: tempo di attesa cumulativo per l'evento di attesa in microsecondi.
    • count: numero totale di volte in cui si è verificato l'evento di attesa.
    • database: database logico in cui si è verificato l'evento di attesa.
    • username: ruolo del database associato all'evento di attesa.
    • tag_id: identificatore numerico del set di tag SQLCommenter associato.
    • tag_string: stringa di commento SQL non elaborata contenente i tag dell'applicazione.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.
    • query_id: identificatore hash della query (in observability_service_wait_event_stats_by_query_view).

Database

La dimensione dei database monitora il consumo di risorse e il volume delle query per database logico quando google_insights_v2.enabled è impostato su on.

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_db_load_conn_view
    • observability_service_query_view
    • observability_service_wait_event_no_query_view
  • Colonne correlate:
    • database: nome del database logico.
    • username: ruolo del database che ha eseguito le query nel database.
    • total_execution_time: tempo di esecuzione cumulativo delle query nel database in microsecondi.
    • total_wait_time: tempo di attesa cumulativo nel database in microsecondi.
    • count: numero totale di esecuzioni di query nel database.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.

Utenti e indirizzi IP client

Per impostazione predefinita, la dimensione degli utenti e degli indirizzi IP client monitora il carico per ruolo del database (username). Per raccogliere anche gli indirizzi IP client di connessione (client_address), devi impostare google_insights_v2.qi_track_client_address su on (off per impostazione predefinita).

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_query_view
    • observability_service_client_address_stats_by_query_view
  • Colonne correlate:
    • client_address: indirizzo IP client di connessione (quando google_insights_v2.qi_track_client_address è on).
    • username: nome del ruolo del database.
    • database: nome del database logico.
    • query_id: identificatore hash della query SQL normalizzata.
    • time_spent: tempo di esecuzione cumulativo delle query per l'indirizzo client in microsecondi.
    • count: numero totale di esecuzioni di query per l'utente o l'indirizzo IP client.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.

Tag

La dimensione dei tag monitora le statistiche di esecuzione delle query in base ai metadati dei tag dell'applicazione. Per raccogliere le metriche dei tag, devi impostare google_insights_v2.qi_track_tag su on (off per impostazione predefinita). Se impostate su off, queste visualizzazioni non restituiscono righe.

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • observability_service_db_load_tag_view
    • observability_service_tag_view
  • Colonne correlate:
    • tag_id: identificatore numerico della combinazione di tag dell'applicazione.
    • tag_string: stringa di commento SQL non elaborata contenente i tag dell'applicazione.
    • application: nome dell'applicazione estratto dai tag SQLCommenter.
    • db_driver: driver del database estratto dai tag SQLCommenter.
    • framework_name: nome del framework dell'applicazione estratto dai tag SQLCommenter.
    • framework_controller: controller del framework estratto dai tag SQLCommenter.
    • framework_action: azione del framework estratta dai tag SQLCommenter.
    • framework_route: route del framework estratta dai tag SQLCommenter.
    • traceparent: contesto della traccia W3C estratto dai tag SQLCommenter.
    • database: nome del database logico in cui è stata eseguita la query con tag.
    • username: ruolo del database che ha eseguito la query con tag.
    • total_execution_time: tempo di esecuzione cumulativo delle query per la combinazione di tag in microsecondi.
    • count: numero totale di esecuzioni di query per la combinazione di tag.
    • recorded_on: timestamp in cui è stato registrato l'intervallo di telemetria.

Query attive

La dimensione delle query attive monitora le query in esecuzione e le transazioni aperte in tempo reale. Per eseguire query sulle sessioni attive, devi impostare google_insights_v2.qi_track_active_queries su on. Se impostato su off, l'esecuzione di query su queste visualizzazioni restituisce un errore.

Per questa dimensione sono disponibili le seguenti visualizzazioni e colonne:

  • Visualizzazioni di osservabilità:
    • stat_activity
    • stat_activity_v3
  • Colonne correlate:
    • pid: ID di processo backend. Per terminare una sessione, passa l'ID di processo alla funzione di sistema pg_terminate_backend(pid) di PostgreSQL.
    • normalized_query_hash: identificatore hash della query SQL normalizzata.
    • normalized_query: testo SQL normalizzato della query attiva.
    • state: stato attuale del backend, ad esempio active o idle in transaction.
    • backend_start: timestamp di inizio della sessione corrente. Per calcolare la durata della sessione in secondi, calcola EXTRACT(EPOCH FROM (clock_timestamp() - backend_start)).
    • xact_start: timestamp di inizio della transazione corrente. Per calcolare la durata della transazione in secondi, calcola EXTRACT(EPOCH FROM (clock_timestamp() - xact_start)).
    • query_start: timestamp di inizio della query corrente. Per calcolare la durata della query in secondi, calcola EXTRACT(EPOCH FROM (clock_timestamp() - query_start)).
    • wait_event_type: categoria di eventi di attesa se il backend è in attesa.
    • wait_event: nome dell'evento di attesa se il backend è in attesa.
    • database: nome del database logico per la sessione attiva.
    • username: nome del ruolo del database per la sessione attiva.
    • application_name: nome dell'applicazione di connessione.
    • client_addr: indirizzo IP client di connessione.