Per rilevare e analizzare i problemi di prestazioni delle query quasi in tempo reale nelle istanze principali e del pool di lettura, puoi utilizzare le funzionalità avanzate di Query Insights per AlloyDB per PostgreSQL. Per una panoramica di queste funzionalità, consulta Panoramica delle funzionalità avanzate di Query Insights per AlloyDB.
Per scoprire come utilizzare Query Insights standard, consulta Migliora le prestazioni delle query utilizzando Query Insights.
Puoi utilizzare 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 di Gemini.
Prima di iniziare
Per accedere alla dashboard di Query Insights, abilita l'accesso ad AlloyDB per PostgreSQL nel tuo progetto Google Cloud .
Ruoli obbligatori
Per utilizzare le funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per eseguire le seguenti operazioni:
- Per accedere alle funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per accedere alla dashboard di Query Insights di AlloyDB.
- Per modificare le impostazioni delle funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per aggiornare le istanze AlloyDB.
Per ottenere queste autorizzazioni, chiedi all'amministratore di concederti uno dei seguenti ruoli:
- Visualizzatore di base (
roles/viewer) - Database insights viewer (
roles/databaseinsights.viewer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso.
Abilita le funzionalità avanzate di Query Insights per AlloyDB
Per abilitare la configurazione di Query Insights avanzato per un'istanza AlloyDB, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Fai clic su Attiva o Modifica impostazioni.
Nella scheda Modifica le impostazioni di Query Insights, seleziona la casella di controllo Abilita le funzionalità avanzate di Query Insights per AlloyDB.
Ciò comporta le seguenti modifiche alla configurazione per impostazione predefinita:
- Attiva le caselle di controllo Analisi degli eventi di attesa e Analisi delle query attive.
- Aumenta la lunghezza della query da 4500 B a 100.000 B.
Salva le modifiche. Per i cluster compatibili con PostgreSQL 17 o versioni precedenti, il salvataggio delle modifiche comporta il riavvio dell'istanza AlloyDB per PostgreSQL.
gcloud
gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabledSostituisci quanto segue:
INSTANCE: l'ID dell'istanza da aggiornare.CLUSTER: l'ID del cluster dell'istanza.PROJECT: l'ID del progetto del cluster.REGION: la regione del cluster, ad esempious-central1.
Il flag --observability-config-enabled consente di raccogliere e analizzare i dati su un'istanza AlloyDB per monitorarne le prestazioni e l'integrità. Se vuoi disattivare Query Insights avanzato, utilizza --no-observability-config-enabled.
Terraform
Per utilizzare Terraform per abilitare Query Insights avanzato nell'istanza AlloyDB, imposta il campo enabled su true nel blocco observability_config.
Ecco un esempio:
observability_config {
enabled = true
...
}
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST v1
Questo esempio abilita Query Insights avanzato sulla tua istanza AlloyDB. Per un elenco completo dei parametri di questa chiamata, consulta Metodo: projects.locations.clusters.instances.patch. Per informazioni sulle impostazioni avanzate di Query Insights, consulta Modifica le impostazioni avanzate di Query Insights.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
CLUSTER_ID: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.LOCATION_ID: l'ID della regione del cluster.INSTANCE_ID: il nome dell'istanza principale che vuoi creare.
Per abilitare Query Insights avanzato sulla tua istanza, utilizza la seguente richiesta PATCH:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled
Il parametro di query updateMask=observabilityConfig.enabled indica all'API di aggiornare il campo enabled all'interno del blocco observabilityConfig.
Il corpo JSON della richiesta è il seguente:
{
"observabilityConfig": {
"enabled" : true
}
}
Dopo aver attivato Query Insights avanzato, puoi modificare le relative impostazioni.
Modifica le impostazioni delle funzionalità avanzate
Per modificare la configurazione di Query Insights avanzato per un'istanza AlloyDB, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Fai clic su Modifica impostazioni e poi modifica una delle seguenti impostazioni:
- Analisi degli eventi di attesa L'analisi degli eventi di attesa può aiutarti a identificare e risolvere i problemi di prestazioni nel tuo database. Un evento di attesa è un componente che causa un ritardo nell'elaborazione di un'operazione correlata alla query.
- Analisi delle query attive Monitora le query in esecuzione attiva.
- Archivia commenti delle query Scopri di più sul contesto della query visualizzando i commenti associati a qualsiasi query che esamini, che rientrano nella lunghezza della query. Non è necessaria memoria aggiuntiva. Se i tuoi commenti contengono informazioni sensibili, presta attenzione all'accesso da parte degli utenti.
- Abilita Index Advisor Visualizza i suggerimenti sulla creazione degli indici nella pagina Query Insights di un cluster.
- Nel campo Seleziona la frequenza di esecuzione, puoi definire la frequenza di aggiornamento dei suggerimenti.
- Archivia gli indirizzi IP client Attiva questa opzione per monitorare gli indirizzi IP client e analizzare i relativi dati.
- Archivia i tag delle applicazioni Attiva questa opzione per scoprire quali API e route model-view-controller stanno effettuando richieste e raggruppa i dati per eseguire metriche su di essi.
Campionamento del piano di query I piani di query mostrano le operazioni utilizzate per completare un esempio di query. La frequenza di campionamento determina quanti esempi di query possono essere acquisiti al minuto nei tuoi database. Frequenze più elevate richiedono più memoria.
Nel campo Lunghezze delle query, puoi modificare il limite predefinito per la lunghezza delle query, da 256 byte fino a 100 kB. Se le query hanno una lunghezza maggiore, sarà necessaria più memoria. Per i cluster compatibili con PostgreSQL 17 o versioni precedenti, la modifica della lunghezza delle query richiede il riavvio dell'istanza.
Salva le modifiche.
gcloud
gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queriesPer configurare anche il monitoraggio degli indirizzi IP client o le esperienze di assistenza (Anteprima), includi i flag --observability-config-track-client-address e --observability-config-assistive-experiences-enabled con il comando gcloud beta alloydb instances update:
gcloud beta alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries \
--observability-config-track-client-address \
--observability-config-assistive-experiences-enabledSostituisci quanto segue:
INSTANCE: l'ID dell'istanza da aggiornare.CLUSTER: l'ID del cluster dell'istanza.PROJECT: l'ID del progetto del cluster.REGION: la regione del cluster, ad esempious-central1.QUERY_LENGTH: la lunghezza della query, che va da 1024 a 100.000 byte. La lunghezza predefinita della query è 10.240 byte. Le query con una lunghezza maggiore sono più utili per le query analitiche, ma richiedono anche più memoria. Per i cluster compatibili con PostgreSQL 17 o versioni precedenti, la modifica della lunghezza della query richiede il riavvio dell'istanza.
Puoi comunque aggiungere tag alle query che superano il limite di lunghezza.
* QUERY_PLANS: il numero di piani di query da configurare al minuto. Per impostazione predefinita, vengono acquisiti un massimo di 20 esempi di piano di query eseguiti al minuto su tutti i database dell'istanza.
Modifica questo valore scegliendo un numero compreso tra 1 e 200. Per disattivare il campionamento, inserisci 0.
È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe influire negativamente sulle prestazioni.
Se necessario, utilizza i seguenti flag di osservabilità facoltativi:
--observability-config-enabled: consente di raccogliere e analizzare i dati su un'istanza AlloyDB per monitorarne le prestazioni e l'integrità. Se vuoi disattivare Query Insights avanzato, utilizza--no-observability-config-enabled.--observability-config-track-active-queries: attiva il monitoraggio delle query attive. Se vuoi disattivare la funzionalità, utilizza--no-observability-config-track-active-queries.--observability-config-track-client-address(anteprima): consente il monitoraggio degli indirizzi client. Imposta utilizzando il comandogcloud beta alloydb instances update. Se vuoi disattivare il monitoraggio degli indirizzi client, utilizza--no-observability-config-track-client-address.--observability-config-assistive-experiences-enabled(anteprima): consente alle esperienze di assistenza di raccogliere dati di telemetria avanzati per il monitoraggio e la risoluzione dei problemi. Imposta utilizzando il comandogcloud beta alloydb instances update. Se vuoi disattivare le esperienze di assistenza, utilizza--no-observability-config-assistive-experiences-enabled.--observability-config-record-application-tags: archivia i tag delle applicazioni che ti aiutano a determinare le API e i percorsi model-view-controller (MVC) che effettuano richieste e raggruppano i dati per eseguire metriche su di essi. Questa opzione richiede di commentare le query con un insieme specifico di tag. Se non vuoi archiviare i tag dell'applicazione, utilizza--no-observability-config-record-application-tags.--observability-config-preserve-comments: mantiene i commenti nelle stringhe di query registrate da Query Insights. Se non vuoi conservare i commenti, utilizza--no-observability-config-preserve-comments.--observability-config-track-wait-events: attiva il monitoraggio degli eventi di attesa durante l'esecuzione delle query. Se non vuoi monitorare gli eventi di attesa, utilizza--no-observability-config-track-wait-events.--observability-config-query-plans-per-minute=QUERY_PLANS: il numero di piani di query da campionare al minuto. Per impostazione predefinita, vengono acquisiti un massimo di 20 esempi di piano di query eseguiti al minuto su tutti i database dell'istanza. Modifica questo valore scegliendo un numero compreso tra 1 e 200. Per disattivare il campionamento, inserisci 0. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe influire negativamente sulle prestazioni.--observability-config-max-query-string-length=QUERY_LENGTH: la lunghezza della stringa di query in byte da archiviare. Il valore predefinito è 10.240 byte. È consentito qualsiasi valore compreso tra 1024 e 100.000. Per i cluster compatibili con PostgreSQL 17 o versioni precedenti, la modifica della lunghezza delle query richiede il riavvio dell'istanza.
Terraform
Per utilizzare Terraform per configurare Query Insights avanzato sulla tua istanza AlloyDB, utilizza la risorsa google_alloydb_instance.
Ecco un esempio:
observability_config {
enabled = ENABLED_VALUE
preserve_comments = PRESERVE_COMMENTS_VALUE
track_wait_events = TRACK_WAIT_EVENTS_VALUE
max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
record_application_tags = RECORD_APPLICATION_TAGS_VALUE
query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
track_client_address = TRACK_CLIENT_ADDRESS_VALUE
assistive_experiences_enabled = ASSISTIVE_EXPERIENCES_ENABLED_VALUE
}
Sostituisci quanto segue:
ENABLED_VALUE: lo stato della funzionalità di osservabilità per un'istanza. Impostalo sutruequando modifichi le impostazioni e specifica altri flag in base alle esigenze.PRESERVE_COMMENTS_VALUE: conserva i commenti nella stringa di query. Il valore predefinito èfalse.TRACK_WAIT_EVENTS_VALUE: registra gli eventi di attesa durante l'esecuzione delle query per un'istanza. Il valore predefinito ètrue.MAX_QUERY_STRING_LENGTH_VALUE: lunghezza della stringa di query. Il valore predefinito è10240. Qualsiasi numero intero compreso tra 1024 e 100.000 è valido.RECORD_APPLICATION_TAGS_VALUE: registra i tag dell'applicazione per un'istanza. Il valore predefinito ètrue.QUERY_PLANS_PER_MINUTE_VALUE: il numero di piani di esecuzione delle query acquisiti da Insights al minuto per tutte le query combinate. Il valore predefinito è20. Qualsiasi numero intero compreso tra 0 e 200 è valido.TRACK_ACTIVE_QUERIES_VALUE: monitora le query in esecuzione attiva. Il valore predefinito èfalse.TRACK_CLIENT_ADDRESS_VALUE: registra gli indirizzi IP client per un'istanza. Il valore predefinito èfalse.ASSISTIVE_EXPERIENCES_ENABLED_VALUE: attiva le esperienze di assistenza. Il valore predefinito èfalse.Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST v1
Questo esempio configura le impostazioni avanzate di Query Insights nell'istanza AlloyDB. Per un elenco completo dei parametri di questa chiamata, consulta Metodo: projects.locations.clusters.instances.patch.
Per configurare le impostazioni avanzate di Query Insights, imposta il campo enabled su true e modifica gli altri campi facoltativi in base alle tue esigenze. Per un elenco completo dei campi per questa chiamata, consulta ObservabilityInstanceConfig.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
CLUSTER_ID: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.LOCATION_ID: l'ID della regione del cluster.INSTANCE_ID: il nome dell'istanza principale che vuoi creare.
Per modificare la configurazione dell'istanza, utilizza la seguente richiesta PATCH:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries
Il corpo JSON della richiesta che configura tutti i campi di Query Insights avanzato è il seguente:
{
"observabilityConfig": {
"enabled": true,
"preserveComments": true,
"trackWaitEvents": true,
"maxQueryStringLength": 5000,
"recordApplicationTags": true,
"queryPlansPerMinute": 20,
"trackActiveQueries": true
}
}
Per configurare anche i campi trackClientAddress o assistiveExperiencesEnabled (anteprima), utilizza il metodo v1beta projects.locations.clusters.instances.patch e includi questi campi nel corpo della richiesta updateMask e ObservabilityInstanceConfig.
Rileva e diagnostica i problemi di prestazioni delle query
Puoi utilizzare Query Insights avanzato per rilevare e diagnosticare i problemi di prestazioni. La dashboard di Query Insights mostra il carico del database, ovvero una misura del lavoro (in secondi CPU) nel tempo per le query eseguite nel database selezionato. Ogni query in esecuzione utilizza o è in attesa di risorse. Il carico del database è il rapporto tra la quantità di tempo impiegata da tutte le query completate in una determinata finestra temporale e il tempo reale trascorso.
Visualizza la misura del lavoro svolto dalle query eseguite
Il grafico del carico del database fornisce la misura del lavoro svolto (in secondi CPU) da tutte le query eseguite nel database, suddiviso in base alla dimensione selezionata. Il carico del database è suddiviso nei dati di distribuzione che selezioni dal menu a discesa del grafico.
Puoi suddividere il carico del database in base a una delle seguenti dimensioni:
- Query
- Tipo di evento di attesa
- Evento di attesa
- Database
- Utente
Per visualizzare il lavoro completato dalle query eseguite nel database, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore o un periodo di tempo personalizzato.
Nel menu a discesa Carico del database per tempo di esecuzione, scegli la dimensione che vuoi esaminare. A seconda della dimensione scelta, il grafico mostra il contributo della dimensione scelta al carico complessivo del database. Ad esempio, se selezioni la dimensione Eventi di attesa dal menu a discesa del grafico del carico del database, nel grafico del carico del database viene visualizzata la suddivisione di tutti gli eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato per il database e l'utente selezionati.
Il grafico del carico del database mostra i dati per tutti e nove i tipi di eventi di attesa e gli eventi di attesa supportati in PostgreSQL. A seconda del numero di eventi e tipi di attesa, vengono visualizzati i primi dieci eventi e tipi di attesa che contribuiscono maggiormente. Se sono presenti più di dieci eventi di attesa, vengono visualizzati i primi nove eventi di attesa e gli altri vengono raggruppati nella categoria Altri. Questo approccio si applica anche ad altre dimensioni come Query, Database e Utenti.
Visualizza i principali fattori che contribuiscono al carico del database
Utilizzando la tabella Dimensioni massime per carico del database, puoi visualizzare i principali contributori al carico del database per l'intervallo di tempo e la dimensione selezionati nel grafico Carico del database. A seconda della dimensione scelta nella tabella Dimensioni principali per carico del database, puoi trovare i valori principali per la finestra temporale selezionata.
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore o un periodo di tempo personalizzato.
Nella tabella Dimensioni massime per carico del database, puoi fare clic su uno dei seguenti elementi:
Dimensione Descrizione Query La tabella mostra le query normalizzate principali in base al tempo di esecuzione totale. Per ogni query, i dati mostrati nelle colonne sono elencati come segue:
- Tempo di esecuzione medio (ms). Tempo medio di esecuzione della query.
- Tempo totale di esecuzione (ms). Il tempo di esecuzione totale impiegato dalla query specifica.
- Righe restituite. Il numero medio di righe recuperate per la query.
- Numero di chiamate. Il numero di volte in cui la query è stata chiamata dall'applicazione.
- %di carico per dimensione del grafico. Il grafico a pillola mostra come la dimensione del grafico è distribuita per la query specifica.
Tipi di eventi di attesa La tabella mostra l'elenco dei principali tipi di eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato.
- Tempo medio di attesa (ms). Tempo medio trascorso dalle query nel tipo di evento di attesa specifico.
- Tempo totale di attesa (ms). Il tempo di esecuzione totale impiegato dalle query nel tipo di evento di attesa specifico.
- Conteggio dei tipi di eventi di attesa. Il numero di volte in cui un tipo di evento di attesa specifico si è verificato nell'intervallo di tempo scelto.
- %di carico per dimensione del grafico. Il grafico a pillola mostra come la dimensione del grafico selezionata nel menu a discesa del grafico di carico del database è distribuita nel tipo di evento di attesa specifico.
Eventi di attesa La tabella mostra l'elenco dei principali eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato.
- Tempo medio di attesa (ms). Tempo medio trascorso dalle query nell'evento di attesa specifico.
- Tempo totale di attesa (ms). Il tempo di esecuzione totale impiegato dalle query nello specifico evento di attesa.
- Conteggio degli eventi di attesa. Il numero di volte in cui si è verificato un evento di attesa specifico nell'intervallo di tempo scelto.
- %di carico per dimensione del grafico. Il grafico a pillola mostra come la dimensione del grafico selezionata nel menu a discesa del grafico di carico del database è distribuita nell'evento di attesa specifico.
Database La tabella mostra l'elenco dei database principali che hanno contribuito al carico durante l'intervallo di tempo scelto per tutte le query eseguite.
- Tempo medio trascorso nel database (ms). Tempo medio impiegato dalle query nel database specifico.
- Tempo totale trascorso nel database (ms). Il tempo di esecuzione totale impiegato dalle query nel database specifico.
- %di carico per dimensione del grafico. Il grafico a pillola mostra come la dimensione del grafico selezionata nel menu a discesa del grafico del carico del database è distribuita nel database specifico.
Utente La tabella mostra l'elenco degli utenti principali per l'intervallo di tempo scelto in tutte le query eseguite.
- Tempo medio trascorso nell'utente (ms). Tempo medio impiegato dalle query per l'utente specifico.
- Tempo totale trascorso nell'utente (ms). Il tempo di esecuzione totale delle query trascorso nell'utente specifico.
- %di carico per dimensione del grafico. Il grafico a pillola mostra come la dimensione del grafico selezionata nel menu a discesa del grafico del carico del database è distribuita tra l'utente specifico.
Visualizza il tempo di esecuzione della query
Le funzionalità avanzate di Query Insights per AlloyDB mostrano le prime dieci query che contribuiscono al carico del database nella tabella Dimensioni massime per carico del database. La query principale è quella che ha contribuito maggiormente al carico del database per l'intervallo di tempo selezionato. Le query successive sono una percentuale del tempo di esecuzione più lungo.
Per scoprire in che modo il tempo di esecuzione di un parametro in Dimensioni principali per carico del database è influenzato dai diversi valori della dimensione del grafico selezionata (query, tipi di eventi di attesa, eventi di attesa, database e utenti), segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Visualizza la % di carico per dimensione del grafico nella tabella Dimensioni massime per carico del database per scoprire in che modo un parametro nella tabella è influenzato dai parametri nel grafico Carico del database.
Ad esempio, se selezioni Tutte le query nel grafico Carico del database e fai clic sulla scheda Query nella tabella Dimensioni principali per carico del database, % di carico per query mostra un elenco delle query che hanno contribuito maggiormente al carico del database selezionato nel periodo di tempo specificato.
Visualizza i dettagli sul tempo di esecuzione della query
Puoi visualizzare i dettagli sul tempo di esecuzione delle query in Altri dettagli, tra cui le dimensioni selezionate nel grafico e nella tabella del carico del database, la definizione di ogni evento di attesa e i dati incapsulati nella categoria Altri.
Ulteriori dettagli mostra anche i dettagli di informazioni complesse che non vengono visualizzate altrove nella schermata dei dettagli della query. Queste informazioni includono la definizione di ogni evento di attesa.
Per visualizzare i dettagli sul tempo di esecuzione delle query, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Nella tabella Dimensioni massime per carico del database, fai clic su Altri dettagli per una query.
Le funzionalità avanzate di Query Insights per AlloyDB mostrano query normalizzate ($1, $2 e così via) per sostituire i valori delle costanti letterali. Ad esempio:
UPDATE "demo_customer" SET "customer_id" = $1::uuid, "name" = $2, "address" = $3, "rating" = $4, "balance" = $5, "current_city" = $6, "current_location" = $7 WHERE "demo_customer"."id" = $8
Il valore costante viene ignorato in modo che Query Insights avanzato possa aggregare query simili e rimuovere eventuali informazioni che consentono l'identificazione personale (PII) che la costante potrebbe mostrare.
Determina il carico del database per le query normalizzate
Per visualizzare una misura del tempo e dell'utilizzo delle risorse in base all'esecuzione delle query (in secondi CPU) che la query normalizzata selezionata ha eseguito nel tempo nel database selezionato, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Fai clic su Query nel grafico Carico del database. Per calcolare il carico del database, il grafico Carico database utilizza il tempo impiegato dalle query normalizzate completate nel limite di un minuto rispetto al tempo reale trascorso.
Nella parte superiore del grafico Carico del database, vengono visualizzati i primi 10 KB di caratteri della query normalizzata, in cui i valori letterali vengono rimossi per motivi di aggregazione e di informazioni che consentono l'identificazione personale (PII).
Per determinare la distribuzione del tempo trascorso in ciascuno di questi stati, le funzionalità avanzate di Query Insights per AlloyDB distribuiscono i carichi di query normalizzati in eventi di attesa e tipi di eventi di attesa.
Puoi studiare la latenza delle query utilizzando i grafici Latenza. La latenza è il tempo impiegato dalla query normalizzata per il completamento in tempo reale trascorso. La latenza delle query parallele viene misurata in tempo reale trascorso, anche se il carico del database può essere più elevato per la query a causa dell'utilizzo di più core per eseguire parte della query.
Puoi filtrare per percentile per visualizzare il 50°, 95° o 99° percentile per rilevare le query che non rispettano il tempo di esecuzione previsto. Per analizzare la latenza storica della query normalizzata, modifica la finestra temporale.
Analizza le query normalizzate
I piani di query ti aiutano a comprendere e analizzare le query normalizzate fornendo una suddivisione delle diverse operazioni in un campione della query.
Il piano di query di esempio fornisce una visualizzazione EXPLAIN ANALYZE per gli esempi di piano di query correlati alla query normalizzata. Si tratta di piani di query eseguiti che forniscono una suddivisione del tempo attivo impiegato da ogni operazione nel piano di query.
Per visualizzare un piano di query di esempio:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore o un periodo di tempo personalizzato.
Nella tabella Dimensioni massime per carico del database, fai clic su una query.
In Esempi di piano di query, fai clic su uno dei punti del grafico per visualizzare un piano di query per la query in questione.
Monitora e risolvi i problemi relativi alle prestazioni delle applicazioni utilizzando i tag
Gli insight sulle query avanzati forniscono un monitoraggio incentrato sulle applicazioni e semplificano la diagnosi delle prestazioni delle applicazioni create con l'object-relational mapping (ORM). Il tagging delle query ti aiuta a trovare i problemi nei costrutti di livello superiore, ad esempio utilizzando la logica di business, un microservizio o un altro costrutto. Puoi utilizzare i tag nella tua applicazione per:
- Monitorare le prestazioni del database.
- Utilizza Sqlcommenter per identificare i problemi di prestazioni causati dal codice dell'applicazione.
- Analizza il carico del database.
- Visualizza il carico per tag.
Per scoprire come utilizzare i tag in Query Insights, consulta Migliora le prestazioni delle query utilizzando Query Insights.
Risolvi i problemi delle applicazioni a livello di database
Query Insights avanzato fornisce una visualizzazione di traccia end-to-end nel contesto per aiutarti a comprendere i problemi dell'applicazione a livello di database per una richiesta specifica. Le tracce delle applicazioni end-to-end nel contesto ti aiutano a determinare l'origine della query problematica, ad esempio per modello, visualizzazione, controller e route.
Quando attivi OpenTelemetry, le informazioni sugli intervalli vengono inviate al database insieme alle informazioni sui tag all'interno dei commenti SQL. Le tracce dall'applicazione a Cloud Logging sono collegate alle tracce del piano di query del database per identificare l'origine del problema.
Per visualizzare una traccia nel contesto, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza.
Fai clic su Query Insights.
Scegli il database e l'utente.
Fai clic su una voce qualsiasi nella tabella Dimensioni massime per carico del database.
Nella pagina Dettagli di Query Insights, fai clic su END TO END.
Puoi anche utilizzare Cloud Trace per visualizzare il tracciamento end-to-end per ogni passaggio del piano di query. Per accedere a Cloud Trace, seleziona Operazioni > Trace.
Domande frequenti
Questa sezione fornisce risposte alle domande frequenti sulle funzionalità avanzate di Query Insights.
Perché la stringa di query è troncata?
Per impostazione predefinita, Query Insights avanzato visualizza 10 kB nelle stringhe di query. Puoi aumentare la visualizzazione fino a 100 kB.
Perché il carico della CPU è superiore alla linea dei core massimi nel grafico Carico del database?
Il carico della CPU tiene conto sia del tempo di esecuzione sia del tempo di attesa per la pianificazione del processo del server in esecuzione da parte dello scheduler Linux, pertanto il carico della CPU può superare la linea del numero massimo di core.
Posso utilizzare le metriche standard di Query Insights?
Sì. Query Insights standard genera contatori a cui è possibile accedere tramite Stackdriver. Queste metriche sono disponibili tramite l'API Cloud Monitoring e l'interfaccia utente di Esplora metriche. Per saperne di più, consulta le metricheGoogle Cloud .
Qual è la lunghezza massima della stringa di query?
Per il plug-in standard di Query Insights, la lunghezza massima della stringa di query è limitata a 4,5 kB di caratteri. Per Query Insights avanzato, la lunghezza predefinita della stringa è 10 kB e la lunghezza massima è limitata a 100 kB.
Posso utilizzare le funzionalità avanzate di Query Insights con i cluster secondari?
Puoi attivare Query Insights avanzato sui cluster primari con cluster secondari configurati, ma non sui cluster secondari. Se esegui uno switchover, devi riattivare Query Insights avanzato sul nuovo cluster primario.