Monitorare le query attive

Per identificare le cause della latenza del sistema e dell'utilizzo elevato della CPU in AlloyDB per PostgreSQL, puoi monitorare e risolvere i problemi delle query attive e a lunga esecuzione nel tuo database.

Puoi visualizzare le query attive nella pagina Query Insights della consoleGoogle Cloud , ordinate per ora di inizio della transazione. Se sono in esecuzione molte query, la pagina potrebbe mostrare un sottoinsieme delle query totali a causa dei limiti di memoria per la raccolta dei dati.

Prima di iniziare

Per iniziare a visualizzare le query attive, devi abilitare le funzionalità avanzate di Query Insights e attivare l'analisi delle query attive per la tua istanza nel seguente modo:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza principale o del pool di lettura.

  3. Fai clic su Query Insights.

  4. Fai clic su Edit Settings (Modifica impostazioni).

  5. Nella finestra Modifica le impostazioni di Query Insights, seleziona Abilita le funzionalità avanzate di Query Insights per AlloyDB > Analisi delle query attive.

  6. Fai clic su Salva modifiche.

  7. Nella finestra Le modifiche richiedono il riavvio, fai clic su Conferma e riavvia.

Puoi utilizzare l'assistenza di Gemini Cloud Assist per monitorare e risolvere i problemi delle tue risorse AlloyDB. Per saperne di più, consulta Monitora e risolvi i problemi con l'assistenza AI.

Visualizza query attive

Per visualizzare le query attive:

  1. Chiedi all'amministratore di concederti il ruolo Visualizzatore monitoraggio insight sui database (roles/databaseinsights.monitoringViewer) o crea un ruolo personalizzato con l'autorizzazione IAM databaseinsights.activeQueries.fetch.

  2. Concedi questo ruolo a ogni utente che visualizza le query attive.

  3. Nella console Google Cloud , apri la pagina AlloyDB.

    Vai ad AlloyDB

  4. Fai clic sul nome di un cluster per aprire la relativa pagina Panoramica.

  5. Seleziona la scheda Query Insights. La dashboard di Query Insights mostra i dettagli del cluster selezionato.

  6. Fai clic sulla scheda Visualizzazione query attive. La scheda contiene un riepilogo delle query attive in esecuzione insieme alle 50 transazioni in esecuzione da più tempo.

    Puoi filtrare le informazioni in base a uno dei seguenti criteri:

    • Database: filtra il carico delle query su un database specifico o su tutti i database.
    • Utente: filtra il carico delle query di un utente del database specifico o di tutti gli utenti.
    • ID nodo: viene visualizzato solo per le istanze del pool di lettura; filtra il carico delle query su un nodo specifico dell'istanza del pool di lettura o su tutti i nodi.

    Prospetto di riepilogo di tutte le query attive normalizzate: fornisce una panoramica di tutte le query attive mostrando le connessioni totali in base ai seguenti parametri:

    • Distribuzione delle connessioni attive classificate in base allo stato della connessione.
    • Distribuzione delle connessioni attive in base ai diversi tipi di eventi di attesa.
    • Distribuzione delle durate delle transazioni per le query che non sono in stato di inattività.

    Transazioni in esecuzione da più tempo: fornisce una panoramica delle prime 50 query in esecuzione nello stato active e idle in transaction in base al tempo di esecuzione in ordine decrescente.

Puoi visualizzare un elenco delle prime cinquanta query attive normalizzate nella dashboard di Query Insights.

Una query attiva normalizzata rimuove i dati sensibili e restituisce un digest. Due query identiche, ad eccezione dei valori della clausola WHERE, hanno lo stesso digest. Ad esempio, considera le seguenti tre query di esempio:

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

La versione normalizzata di queste query è il seguente digest:

select * from my_table where id = ?;

Una query eseguita in sessioni diverse viene visualizzata come voci diverse nella dashboard.

Visualizza le transazioni in esecuzione da più tempo

La tabella seguente descrive le colonne della tabella Transazioni con il tempo di esecuzione più lungo nella dashboard di Query Insights:

Nome colonna Descrizione
ID di processo L'ID di processo è l'identificatore univoco della connessione di database.
ID nodo L'ID nodo è l'identificatore univoco del nodo dell'istanza del pool di lettura su cui viene eseguita una query.
Query Testo della query SQL normalizzato.
Stato Stato attuale della connessione. I valori di stato includono active e idle in transaction.
Durata della sessione Durata della sessione attuale (in secondi).
Durata della transazione Durata della transazione attuale (in secondi).
Durata query La durata della query attiva attuale (in secondi). La durata delle query nello stato idle in transaction è 0 perché le query non sono in esecuzione attiva.
Tipo di evento di attesa Tipo di evento di attesa in corso durante l'esecuzione della query.
Evento di attesa L'evento di attesa che si verifica durante l'esecuzione della query.
Database Il nome del database su cui è in esecuzione questa connessione.
Nome applicazione Nome dell'applicazione su cui è in esecuzione questa connessione.
Nome utente Nome dell'utente del database connesso al database.
Indirizzo client Indirizzo IP specifico del client che ha inviato una query.
Azione Contiene un link per terminare una transazione.

Il display viene aggiornato automaticamente ogni 60 secondi.

L'utilizzo dei campi Database e Utente per il filtro aggiorna i dati nella pagina.

Per analizzare i dati statici, disattiva l'aggiornamento automatico e utilizza il campo Filtro della tabella Transazioni con esecuzione più lunga in base alle tue esigenze.

Termina una query o una transazione

Per terminare una query o una transazione, devi disporre del ruolo roles/databaseinsights.operationsAdmin. Per saperne di più, consulta il riferimento ai ruoli di base e predefiniti di IAM.

Una transazione può contenere più query. Per identificare quali query sono attive al momento, consulta la colonna Query nella tabella Transazione con il tempo di esecuzione più lungo.

Per terminare una query o una transazione, completa i seguenti passaggi:

  1. Seleziona la query nella tabella Transazione in esecuzione da più tempo.
  2. Scorri verso destra fino alla colonna Azione.
  3. Fai clic su Termina connessione.
  4. Nella finestra Termina connessione, fai clic su Conferma.

    La pagina viene aggiornata dopo l'avvio della terminazione. Se la terminazione non va a buon fine, non viene visualizzato alcun messaggio e la query continua a essere visualizzata nell'elenco delle query attive. Se l'interruzione ha esito positivo, la query non viene più visualizzata nell'elenco.

Passaggi successivi