

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
<a name="dsql-db-insights"></a>

Le informazioni sul database Aurora DSQL forniscono l'accesso ai dati campionati al secondo per ogni sessione attiva sul cluster, raccolti dal ** sampler DSQL Active Session History (**DASH) che registra lo stato di attesa e l'istruzione SQL normalizzata in esecuzione in ogni sessione. 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 i problemi di prestazioni.

Non è necessario configurare DASH. Viene abilitato automaticamente per ogni cluster Aurora DSQL e i dati aggregati al minuto sono disponibili tramite Amazon CloudWatch Database Insights e tramite le query Prometheus Query Language (ProMQL) eseguite in base alle metriche Otel senza costi aggiuntivi. CloudWatch 

**Topics**
+ [Che cos'è DASH?](#dash-what-is)
+ [Metriche DASH ed eventi di attesa](#dash-metrics-wait-events)
+ [Accesso ai dati DASH](#dash-accessing-data)
+ [Risorse correlate](#dash-related-resources)

## Che cos'è DASH?
<a name="dash-what-is"></a>

Una sessione attiva rappresenta una singola connessione al cluster con una transazione aperta. In qualsiasi 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 dello storage o una conferma di commit
+ Transazione 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 cose:
+ **L'evento di attesa**: lo stato in cui si trovava la sessione al momento del campionamento. Vedi [Eventi di attesa DASH](#dash-wait-events) per l'elenco completo.
+ **L'istruzione SQL**: i primi 256 caratteri del codice SQL in esecuzione nella sessione, sufficienti per identificare la maggior parte delle query.

DASH aggrega questi campioni 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 temporali 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 su cosa 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) piuttosto che l'AAS rispetto a un limite fisso di vCPU. Confronta 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
<a name="dash-metrics-wait-events"></a>

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 include le seguenti dimensioni (etichette), utilizzate per raggruppare e filtrare i dati.


| Dimensione | Description | 
| --- |--- |
| db.wait.class | Classificazione più ampia degli eventi di attesa per identificare il tipo generale di risorsa che contribuisce al caricamento del database. Ad esempio, class:oncpu significa che l'istruzione è in esecuzione attiva sulla CPU e class:io significa che l'istruzione è 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](#dash-wait-events) per 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 se la imposti esplicitamente. | 

### Eventi di attesa DASH
<a name="dash-wait-events"></a>

Le sessioni di Aurora DSQL possono presentare i seguenti eventi di attesa. Gli eventi di attesa relativi all'archiviazione,,, e `SequentialScanRead` `ScatteredBatchRead` `SingleRead` `UniqueConstraintCheck``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 | Classe di attesa | Description | 
| --- |--- |--- |
| OnCpu | class:oncpu | La sessione non è in attesa di input esterni ed è in esecuzione attiva sulla CPU: analisi, pianificazione, valutazione delle espressioni o elaborazione dei 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 Le ClientRead attese frequenti o prolungate spesso indicano un numero eccessivo di interruzioni delle applicazioni o transazioni che restano 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. Non si tratta necessariamente di una scansione completa della tabella: potrebbe coprire un intervallo relativamente piccolo di chiavi contigue. | 
| ScatteredBatchRead | class:io | La sessione esegue letture in batch dallo storage, recuperando più chiavi non contigue in una singola chiamata allo storage. | 
| SingleRead | class:io | La sessione sta leggendo una singola tupla (ricerca di punti) dall'archivio. ScatteredBatchReadcon una dimensione del batch pari a 1 sostituisce in gran parte questo evento, cosa rara nelle attuali versioni di Aurora DSQL. | 
| UniqueConstraintCheck | class:io | La sessione sta convalidando i vincoli di chiave univoci, che richiedono letture di archiviazione per verificare la presenza di duplicati. Ciò vale sia per i vincoli univoci sulle colonne non primarie 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 di riferimento, 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 è riuscita o è interrotta (errore di serializzazione); un'Commitattesa precede entrambi i risultati. | 
| PgSleep | class:timeout | La sessione è inattiva 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
<a name="dash-accessing-data"></a>

È 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 il top SQL. Questo è il punto di partenza per la maggior parte delle indagini.
+ **ProMQL**: interroga la `db.active_sessions.avg` metrica sottostante a livello di codice per l'integrazione con strumenti di monitoraggio di terze parti o per l'esplorazione interattiva.
+ **Skill di diagnostica del sistema Aurora DSQL**: un agente di controllo dello stato basato sull'intelligenza artificiale (AI) che analizza automaticamente i dati DASH, confronta le distribuzioni degli eventi di attesa su 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
<a name="dash-database-insights"></a>

Amazon CloudWatch Database Insights presenta i dati DASH tramite una dashboard DSQL-specific curata da Aurora. I cluster Aurora DSQL vengono visualizzati automaticamente in Database Insights: non è necessaria alcuna configurazione oltre alla creazione del cluster e all'esecuzione delle transazioni su di esso.

#### Per visualizzare i dati DASH in Database Insights
<a name="dash-database-insights-procedure"></a>

1. Apri la CloudWatch console e scegli ** Database Insights ** nel riquadro di navigazione a sinistra.

1. Nella ** vista ** Fleet Health, individua il cluster Aurora DSQL nell'elenco delle risorse del ** database. ** In alternativa, potete accedere direttamente alla ** pagina dell'istanza del ** database e selezionare il cluster dal pannello di sinistra.

1. Scegli il ** DB Identifier ** per aprire il ** Database Instance Dashboard**.

1. 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 a quali sessioni dedicano il loro tempo.

1. Usa il ** controllo ** Slice By sul ** grafico ** DB Load per passare da ** Wait Events a SQL Text e viceversa. ** ** **

1. La ** sezione ** DB Load Analysis mostra AAS per ** Top Wait Events ** e ** Top SQL ** classificati in base al loro contributo ad AAS.

1. 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
<a name="dash-promql"></a>

DASH espone i dati come CloudWatch metrica`db.active_sessions.avg`, che puoi interrogare con ProMQL in Query Studio. CloudWatch 

Gli esempi seguenti funzionano in Query Studio, dove lo spazio di lavoro attivo assegna già i risultati all'account e alla regione dell'utente e 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 di 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. Sostituiscilo {{cluster-id}} con l'identificatore del tuo cluster. Se hai 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 l'etichetta impostata su ciascuna serie restituita.

**Caricamento del database tramite 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, ciascuna con il contributo AAS medio di quello stato di attesa.

**SQL migliore per numero medio di sessioni attive**  
Classifica le istruzioni SQL in base al loro contributo medio al carico del database. Questo è l'equivalente ProMQL della vista SQL ** ** principale 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 e di eventi di attesa in base al loro contributo al caricamento, aggiungete qualcosa alla `db.wait.event` clausola di raggruppamento. Poiché in questo modo vengono classificate tutte le combinazioni, i risultati possono includere diversi eventi di attesa per la stessa istruzione 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 dedicano la maggior parte del tempo alle 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 letti dallo storage i cui nomi iniziano con `S` e terminano con (,,). `Read` `SequentialScanRead` `ScatteredBatchRead` `SingleRead` Il modello include `.*Check` esplicitamente perché gli eventi `UniqueConstraintCheck` e `FkExistenceCheck` wait non corrispondono al primo pattern ma sono anche eventi di attesa letti dall'archiviazione.

### Utilizzo dell'abilità AI di diagnostica del sistema Aurora DSQL
<a name="dash-ai-skill"></a>

L'abilità di intelligenza artificiale per la diagnostica del sistema Aurora DSQL automatizza l'analisi dello stato del cluster Aurora DSQL leggendo i dati DASH, confrontando le distribuzioni degli eventi di attesa su intervalli di tempo e generando un report diagnostico. La skill fa parte del plugin [ databases-on-aws in Agent Plugins ](https://github.com/awslabs/agent-plugins/tree/main/plugins/databases-on-aws) for AWS nel repository -plugins e funziona con qualsiasi agente di codifica AI supportato. [ awslabs/agent ](https://github.com/awslabs/agent-plugins)

Per analizzare lo stato del cluster, invia un prompt come:

*«Controlla le prestazioni del mio cluster Aurora DSQL {{cluster-id}} in 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 report Markdown. Puoi indirizzare questa finestra di confronto delle prestazioni nel prompt:

*«Controlla le prestazioni delle ultime 4 ore e confrontale con quelle di lunedì scorso». *

Quando domande specifiche sembrano problematiche, l'abilità 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, quindi non sono necessarie ulteriori richieste.

## Risorse correlate
<a name="dash-related-resources"></a>
+ [Metriche delle query con ProMQL](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-PromQL.html): panoramica del supporto di ProMQL in. CloudWatch
+ [Esecuzione di query ProMQL in Query Studio](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-PromQL-QueryStudio.html), l'ambiente di lavoro interattivo per le query nella console. CloudWatch
+ [AWS ha fornito le metriche in OpenTelemetry formato](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-OTelEnrichment.html): in che modo le metriche dei AWS servizi, comprese quelle per Aurora DSQL, vengono esposte come serie temporali. PromQL-queryable 
+ [Amazon CloudWatch Database Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Database-Insights.html): l' CloudWatch interfaccia utente per il monitoraggio del carico e delle prestazioni del database.
+ [Agent Plugins for AWS ](https://github.com/awslabs/agent-plugins) sul GitHub sito Web: repository di origine per il `databases-on-aws` plug-in contenente la competenza di intelligenza artificiale per la diagnostica del sistema Aurora DSQL.