Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitoraggio dei cluster Aurora DSQL con Aurora DSQL Database Insights
Aurora DSQL Database Insights fornisce l'accesso ai dati campionati al secondo per ogni sessione attiva sul cluster, raccolti dal campionatore DSQL Active Session History (DASH) che registra lo stato di attesa e l'istruzione SQL normalizzata in ogni sessione in esecuzione. Per-minute i risultati aggregati di DASH vengono pubblicati come metriche (OTel). CloudWatch OpenTelemetry Utilizza questi dati per comprendere il carico del database, trovare le query che consumano più risorse e diagnosticare problemi di prestazioni.
Non è necessario configurare DASH. È abilitato automaticamente per ogni cluster Aurora SQL e i dati aggregati al minuto sono disponibili tramite Amazon Database CloudWatch Insights e tramite le query Prometheus Query Language (PromQL) eseguite sulle metriche di Otel senza costi aggiuntivi. CloudWatch
Che cos'è DASH?
Una sessione attiva rappresenta una singola connessione al cluster con una transazione aperta. In un dato momento, ogni sessione attiva si trova in uno dei tre stati seguenti:
-
Utilizzo della CPU
-
In attesa del completamento di un'operazione esterna, ad esempio una lettura di archiviazione o la conferma di un commit
-
Operazione inattiva, in attesa della successiva dichiarazione dell'applicazione in una transazione aperta
DASH tiene traccia solo delle sessioni con una transazione aperta. DASH acquisisce questa attività campionando tutte le sessioni attive sul cluster una volta al secondo. Ogni campione registra due elementi:
-
L'evento di attesa: lo stato in cui si trovava la sessione al momento del campionamento. Vedi Eventi di attesa DASH l'elenco completo.
-
L'istruzione SQL: i primi 256 caratteri dell'istruzione SQL in esecuzione nella sessione, sufficienti per identificare la maggior parte delle query.
DASH aggrega questi esempi al secondo e li pubblica CloudWatch una volta al minuto, suddivisi per evento di attesa e per istruzione SQL. Il risultato è una singola metrica di serie temporale che registra il numero medio di sessioni attive in ogni periodo di campionamento. db.active_sessions.avg Questo valore è noto anche come Average Active Sessions (AAS).
AAS è il segnale fondamentale per l'analisi delle prestazioni di Aurora DSQL. La suddivisione degli eventi di attesa mostra in che modo trascorrono le sessioni, non solo quanto è occupato il cluster. Gli attributi di suddivisione SQL vengono caricati su singole query.
Suggerimento
Aurora DSQL ridimensiona la CPU in modo elastico, quindi il segnale diagnostico più utile è la forma del profilo di attesa (la distribuzione proporzionale del tempo di sessione tra gli eventi di attesa) anziché l'AAS rispetto a un tetto fisso di vCPU. Confrontate quella forma con la linea di base osservata durante il normale funzionamento. Una modifica di queste proporzioni indica un cambiamento nel carico di lavoro o nel comportamento del sistema.
Metriche DASH ed eventi di attesa
DASH espone una singola metrica le cui dimensioni consentono di suddividere il carico del database in base all'evento di attesa e all'istruzione SQL. La tabella seguente descrive la metrica DASH.
| Metrica | Unità | Description |
|---|---|---|
db.active_sessions.avg |
Conteggio | Il numero medio di sessioni attive sul cluster nel periodo di campionamento (AAS). Ogni sessione attiva è in esecuzione sulla CPU o in uno stato di attesa denominato. |
La metrica contiene le seguenti dimensioni (etichette), che vengono utilizzate per raggruppare e filtrare i dati.
| Dimensione | Description |
|---|---|
db.wait.class |
La classificazione più ampia degli eventi di attesa per identificare il tipo generale di risorsa che contribuisce al carico del database. Ad esempio, class:oncpu significa che l'istruzione è in esecuzione attiva sulla CPU e class:io significa che è in attesa del completamento di un' input/output operazione. |
db.wait.event |
Lo stato di attesa in cui si trovavano le sessioni campionate. Vedi Eventi di attesa DASH l'elenco completo dei valori. |
db.session.state |
Lo stato della sessione: active (esecuzione di un'istruzione) o idle in
transaction (attesa del comando successivo dall'applicazione mentre la transazione rimane aperta). |
db.query.id |
L'impronta digitale del testo SQL normalizzato dell'istruzione in esecuzione nelle sessioni. |
db.query.normalized_text |
Il testo SQL normalizzato dell'istruzione in esecuzione nelle sessioni. DASH rimuove i valori letterali in modo da raggruppare le istruzioni che differiscono solo nei parametri. |
aws.auroradsql.session.role.arn |
Il ruolo IAM assunto da ARN per connettersi al cluster Aurora DSQL. |
application.name |
Il nome dell'applicazione impostato nei parametri di connessione. È possibile sovrascriverlo al momento della connessione. DASH include questa dimensione solo quando è impostata in modo esplicito. |
Eventi di attesa DASH
Le sessioni Aurora DSQL possono subire i seguenti eventi di attesa. Gli eventi di attesa relativi allo storage —SequentialScanRead,, ScatteredBatchRead SingleReadUniqueConstraintCheck, e FkExistenceCheck — rappresentano la comunicazione tra il livello di elaborazione delle query e il livello di archiviazione e rappresentano la comunicazione con il servizio di Commit commit. Questo elenco potrebbe espandersi nel tempo man mano che Aurora DSQL identifica nuovi eventi di attesa.
| Evento di attesa | Lezione di attesa | Description |
|---|---|---|
OnCpu |
class:oncpu |
La sessione non è in attesa di input esterni ed è in esecuzione attiva sulla CPU, ovvero analizza, pianifica, valuta le espressioni o elabora i risultati. |
ClientRead |
class:client |
La sessione è inattiva all'interno di una transazione aperta, in attesa che l'applicazione invii la successiva istruzione SQL o un comando. commit/rollback ClientReadAttese frequenti o prolungate spesso indicano un numero eccessivo di ritorni di risposta all'applicazione o transazioni che vengono mantenute aperte più a lungo del necessario. |
ClientWrite |
class:client |
Il database invia i risultati all'applicazione tramite la rete. Alto ClientWrite può indicare set di risultati di grandi dimensioni o latenza di rete tra l'applicazione e il database. |
SequentialScanRead |
class:io |
La sessione sta leggendo un intervallo contiguo di chiavi dall'archivio. Questa non è necessariamente una scansione completa della tabella: potrebbe coprire un intervallo relativamente piccolo di chiavi contigue. |
ScatteredBatchRead |
class:io |
La sessione esegue letture in batch dall'archivio, recuperando più chiavi non contigue in un'unica chiamata allo storage. |
SingleRead |
class:io |
La sessione sta leggendo una singola tupla (ricerca di punti) dall'archiviazione. ScatteredBatchReadcon una dimensione del batch pari a 1 sostituisce in gran parte questo evento, cosa rara nelle versioni correnti di Aurora DSQL. |
UniqueConstraintCheck |
class:io |
La sessione sta convalidando vincoli chiave univoci, il che richiede letture di archiviazione per verificare la presenza di duplicati. Ciò vale sia per i vincoli univoci sulle colonne non a chiave primaria sia per i vincoli di chiave primaria durante l'inserimento di nuove righe. |
FkExistenceCheck |
class:io |
La sessione sta convalidando l'esistenza di una riga di chiave esterna referenziata, il che richiede letture per confermare la relazione. |
StartTransaction |
class:io |
La sessione si sta preparando per l'inizio della transazione distribuita. |
Commit |
class:io |
La sessione ha avviato un commit ed è in attesa di conferma da parte del servizio di commit. La risposta può essere un successo o un'interruzione (errore di serializzazione); un'Commitattesa precede entrambi i risultati. |
PgSleep |
class:timeout |
La sessione è sospesa perché l'applicazione è stata chiamata in modo esplicito. pg_sleep() Si tratta di un'attesa avviata dall'applicazione, non imposta dal database. |
Accesso ai dati DASH
È possibile accedere ai dati DASH in tre modi:
-
Amazon CloudWatch Database Insights: un'interfaccia utente (UI) curata e senza codice per esplorare il carico del database e le prime istruzioni SQL. Questo è il punto di partenza per la maggior parte delle indagini.
-
PromQL: interroga la
db.active_sessions.avgmetrica sottostante in modo programmatico per l'integrazione con strumenti di monitoraggio di terze parti o per l'esplorazione interattiva. -
Skill AI per la diagnostica del sistema Aurora DSQL: un agente di controllo dello stato di salute basato sull'intelligenza artificiale (AI) che analizza automaticamente i dati DASH, confronta le distribuzioni degli eventi di attesa tra i diversi intervalli di tempo e genera report diagnostici.
Tutti questi percorsi di accesso vengono letti dallo stesso set di dati DASH.
Utilizzo di Database Insights CloudWatch
Amazon CloudWatch Database Insights presenta i dati DASH tramite una dashboard curata da DSQL-specific Aurora. I cluster Aurora DSQL vengono visualizzati automaticamente in Database Insights: non è necessaria alcuna configurazione oltre alla creazione del cluster e all'esecuzione di transazioni su di esso.
Per visualizzare i dati DASH in Database Insights
-
Apri la CloudWatch console e scegli Database Insights nel riquadro di navigazione a sinistra.
-
Nella vista Fleet Health, individua il tuo cluster Aurora DSQL nell'elenco delle risorse del database. In alternativa, puoi accedere direttamente alla pagina dell'istanza del database e selezionare il cluster dal pannello di sinistra.
-
Scegli l'identificatore DB per aprire il dashboard dell'istanza del database.
-
Utilizza il grafico DB Load per visualizzare la media delle sessioni attive nel tempo. Il grafico è una visualizzazione in pila in cui ogni banda colorata rappresenta un evento di attesa, quindi l'altezza totale mostra quanto è occupato il cluster e le bande mostrano in che sessione trascorrono il loro tempo.
-
Usa il controllo Slice By sul grafico DB Load per passare da Wait Events a SQL Text.
-
La sezione DB Load Analysis mostra AAS di Top Wait Events e Top SQL classificati in base al loro contributo ad AAS.
-
Utilizza il selettore dell'intervallo di tempo nella parte superiore della pagina per concentrarti su una finestra di monitoraggio specifica, ad esempio il periodo di un rallentamento segnalato.
Usare PromQL
DASH espone i dati come CloudWatch metricadb.active_sessions.avg, che è possibile interrogare con PromQL in Query Studio. CloudWatch
Gli esempi seguenti funzionano in Query Studio, dove l'area di lavoro attiva già analizza i risultati in base all'account e alla regione, mentre il selettore temporale determina la finestra di valutazione. Poiché il nome della metrica contiene punti, gli esempi utilizzano il modulo di selezione dei nomi tra virgolette PromQL,. {"db.active_sessions.avg"}
Nota
Tutti gli esempi includono un filtro di @resource.aws.auroradsql.cluster_id etichette per assegnare i risultati a un singolo cluster. cluster-idSostituiscilo con l'identificatore del cluster. Se disponi di un solo cluster, puoi omettere questo filtro o utilizzare invece i filtri dell'interfaccia utente di Query Studio. Per scoprire tutte le etichette disponibili sulla metrica nel tuo ambiente, {"db.active_sessions.avg"} esegui una query in serie e controlla il set di etichette su ogni serie restituita.
Caricamento del database per evento di attesa
Restituisce il numero medio di sessioni attive raggruppate per evento di attesa, la stessa AAS-by-wait-event visualizzazione disponibile nel grafico Database Insights DB Load, ma accessibile a livello di programmazione.
avg by ("db.wait.event") ( { "db.active_sessions.avg", "@resource.aws.auroradsql.cluster_id"="cluster-id" } )
Il risultato ha una serie per db.wait.event valore distinto, ognuna delle quali riporta il contributo AAS medio di quello stato di attesa.
Primi livelli di SQL per sessioni attive medie
Classizza le istruzioni SQL in base al loro contributo medio al carico del database. Si tratta dell'equivalente PromQL della vista SQL Top di Database Insights.
topk(5, avg by ("db.query.normalized_text") ( { "db.active_sessions.avg", "@resource.aws.auroradsql.cluster_id"="cluster-id" } ) )
Per visualizzare le principali combinazioni di istruzioni SQL ed eventi di attesa in base al loro contributo al caricamento, aggiungete db.wait.event alla clausola di raggruppamento. Poiché in questo modo vengono classificate tutte le combinazioni, i risultati possono includere diversi eventi di attesa per la stessa dichiarazione ad alto contributo:
topk(5, avg by ("db.query.normalized_text", "db.wait.event") ( { "db.active_sessions.avg", "@resource.aws.auroradsql.cluster_id"="cluster-id" } ) )
Istruzioni SQL che eseguono la maggior parte delle letture di archiviazione
Restituisce le prime cinque istruzioni SQL che impiegano più tempo nelle operazioni di lettura dello storage, filtrando in base agli eventi di attesa di lettura dello storage.
topk(5, sum by ("db.query.normalized_text") ( { "db.active_sessions.avg", "db.wait.event"=~"S.*Read|.*Check", "@resource.aws.auroradsql.cluster_id"="cluster-id" } ) )
L'espressione regolare S.*Read corrisponde agli eventi storage-read i cui nomi iniziano S e finiscono con (,,). Read SequentialScanRead ScatteredBatchRead SingleRead Il pattern include in .*Check modo esplicito perché gli eventi UniqueConstraintCheck and FkExistenceCheck wait non corrispondono al primo pattern ma sono anche eventi di attesa di lettura dall'archivio.
Utilizzo dell'abilità AI di diagnostica del sistema Aurora DSQL
L'abilità AI di diagnostica del sistema Aurora DSQL automatizza l'analisi del controllo dello stato del cluster Aurora DSQL leggendo i dati DASH, confrontando le distribuzioni degli eventi di attesa tra i diversi intervalli di tempo e generando un rapporto diagnostico. La skill fa parte del plugin databases-on-aws
Per analizzare lo stato del cluster, invia un prompt come:
«Controlla le prestazioni del mio cluster cluster-id Aurora DSQL us-east-1 e scrivimi un rapporto di markdown».
L'abilità utilizza il server CloudWatch Model Context Protocol (MCP) per analizzare la db.active_sessions.avg metrica in una selezione di intervalli di tempo e restituisce un rapporto Markdown. Puoi indirizzare questa finestra di confronto delle prestazioni nel prompt:
«Controlla le prestazioni delle ultime 4 ore e confrontali con quelle di lunedì scorso».
Quando domande specifiche sembrano problematiche, la competenza avvia un flusso di lavoro di SQL-focused diagnostica più approfondito e riporta le potenziali soluzioni per tale affermazione. Decide se approfondire una query in base allo spostamento dell'evento di attesa rilevato, in modo da non richiedere ulteriori richieste.
Risorse correlate
-
Metriche di interrogazione con PromQL: panoramica del supporto PromQL in. CloudWatch
-
Esecuzione di query ProMQL in Query Studio, l'ambiente di lavoro interattivo per le interrogazioni nella console. CloudWatch
-
AWS ha fornito i parametri in OpenTelemetry formato: in che modo i parametri dei AWS servizi, inclusi quelli per Aurora DSQL, vengono esposti come serie temporali. PromQL-queryable
-
Amazon CloudWatch Database Insights: l' CloudWatch interfaccia utente per il monitoraggio del carico e delle prestazioni del database.
-
Agent Plugins for AWS
sul GitHub sito Web: repository di origine per il databases-on-awsplug-in contenente la skill AI di diagnostica del sistema Aurora DSQL.