Monitorare il database SQL di Azure con metriche e avvisi

Si applica a: Database SQL di Azure

Puoi usare le metriche di Monitoraggio di Azure per monitorare l’utilizzo e il funzionamento delle risorse di database e pool elastici. Puoi usare gli avvisi per inviare notifiche quando i valori delle metriche indicano un potenziale problema.

Metrica

Una metrica è una serie di valori numerici misurati a intervalli di tempo regolari, spesso usando unità come count, percent, bytes e così via. A seconda della natura della metrica, puoi usare aggregazioni come total, count, average, minimum, maximum per calcolare i valori delle metriche per un periodo di tempo. Puoi suddividere alcune metriche in base alle dimensioni. Ogni dimensione fornisce un contesto aggiuntivo ai valori numerici.

Esempi di metriche del database SQL di Azure disponibili sono: CPU percentage, Data space used, Deadlocks, Tempdb Percent Log Used.

Vedi metriche del database e metriche del pool elastico per tutte le metriche disponibili nel database SQL di Azure.

Nota

Alcune metriche si applicano solo a tipi specifici di database o pool elastici. La descrizione di ogni metrica indica se viene usata solo per un tipo di database o pool elastico specifico, ad esempio vCore, Hyperscale, serverless e così via.

Nel portale del database SQL di Azure vengono tracciate diverse metriche di uso comune nella scheda Monitoraggio della pagina Panoramica. Le metriche consentono di valutare immediatamente l'utilizzo delle risorse e il funzionamento di un database o di un pool elastico.

Screenshot dal portale di Azure di un grafico delle metriche mostrato nella pagina di panoramica del database SQL di Azure.

In Metriche chiave, seleziona Visualizza tutte le metriche o qualsiasi punto all’interno del grafico per aprire Esplora metriche. Nella pagina Metriche puoi visualizzare tutte le altre metriche disponibili per la risorsa del database o del pool elastico. In Esplora metriche, è possibile modificare l'intervallo di tempo, la granularità e il tipo di aggregazione per il grafico, modificare il tipo di grafico, espandere l'ambito per includere le metriche di altre risorse di Azure, creare regole di avviso e così via. È anche possibile aprire Esplora metriche selezionando la voce di menu Metriche nella sezione Monitoraggio del menu Risorse.

Usare le metriche per monitorare database e pool elastici

Puoi usare le metriche per monitorare l’utilizzo e il funzionamento delle risorse di database e pool elastici. È ad esempio possibile:

  • Dimensioni corrette del database o del pool elastico per il carico di lavoro dell'applicazione
  • Rilevare un aumento graduale dell'utilizzo delle risorse e aumentare in modo proattivo il database o il pool elastico
  • Rilevare e risolvere un problema di prestazioni

Nella tabella seguente vengono descritte le metriche comunemente usate nel database SQL di Azure.

Nome metrica ID metrica Descrizione
Percentuale CPU cpu_percent Questa metrica mostra l’utilizzo della CPU rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. Per altre informazioni, vedi Utilizzo delle risorse per carichi di lavoro utente e processi interni.
Percentuale di CPU dell’istanza SQL sql_instance_cpu_percent Questa metrica mostra l’utilizzo totale della CPU da parte dell’utente e dei carichi di lavoro di sistema, espresso come percentuale. Poiché questa metrica e la metrica Percentuale CPU vengono misurate su scale diverse, non sono direttamente confrontabili tra loro. Per altre informazioni, vedi Utilizzo delle risorse per carichi di lavoro utente e processi interni.
Percentuale di I/O di dati physical_data_read_percent Questa metrica mostra l’utilizzo di I/O dei file di dati rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso in percentuale. Per altre informazioni, vedi Governance I/O dei dati.
Percentuale I/O log log_write_percent Questa metrica mostra l’utilizzo della produttività di scrittura del log delle transazioni rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. Per altre informazioni, vedi Governance del tasso del log delle transazioni.
Percentuale dei ruoli di lavoro workers_percent Questa metrica mostra l’utilizzo dei thread del ruolo di lavoro rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale.
Percentuale DTU dtu_consumption_percent Questa metrica mostra l’utilizzo di DTU rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. La percentuale DTU deriva da altre tre metriche: percentuale CPU, percentuale I/O dati e percentuale I/O log. In qualsiasi momento, percentuale DTU corrisponde al valore più alto tra queste tre metriche.
CPU usata cpu_used Questa metrica mostra l’utilizzo della CPU rispetto al limite del carico di lavoro utente di un database o di un pool elastico, espresso come numero di vCore. Per ulteriori informazioni, vedi Diagnosticare e risolvere i problemi relativi all'utilizzo elevato della CPU nel database SQL di Azure.
DTU usate dtu_used Questa metrica mostra il numero di DTU usate da un database o da un pool elastico.
CPU dell'app fatturata app_cpu_billed Per i database serverless, questa metrica mostra la quantità di calcolo (CPU e memoria) fatturata, espressa in secondi di vCore. Per altre informazioni, vedi Fatturazione nel livello di calcolo serverless.
Percentuale CPU app app_cpu_percent Per i database serverless, questa metrica mostra l’utilizzo della CPU rispetto al limite massimo di vCore del pacchetto dell'app, espresso come percentuale. Per altre informazioni, vedi Monitoraggio nel livello di calcolo serverless.
Percentuale memoria app app_memory_percent Per i database serverless, questa metrica mostra l’utilizzo della memoria rispetto al limite massimo di memoria del pacchetto dell'app, espresso come percentuale. Per altre informazioni, vedi Monitoraggio nel livello di calcolo serverless.
Conteggio delle sessioni sessions_count Questa metrica mostra il numero di sessioni utente stabilite per un database o un pool elastico.
Spazio dati usato storage Per i database, questa metrica mostra la quantità di spazio di archiviazione usato nei file di dati di un database.
Spazio dati usato storage_used Per i pool elastici, questa metrica mostra la quantità di spazio di archiviazione usato nei file di dati di un database in un pool elastico.
Spazio dati allocato allocated_data_storage Questa metrica mostra la quantità di spazio di archiviazione occupato dai file di dati di un database o dai file di dati di tutti i database in un pool elastico. I file di dati possono contenere spazio vuoto. Per questo motivo, lo spazio dati allocato è spesso superiore allo spazio dati usato per lo stesso database o pool elastico. Per altre informzioni, vedi Gestire lo spazio dei file per i database nel database SQL di Azure.
Percentuale spazio dati usato storage_percent Per i database, questa metrica mostra la quantità di spazio di archiviazione usato nei file di dati di un database rispetto al limite di dimensioni dei dati di un database. Per i pool elastici, mostra la quantità di spazio di archiviazione usato nei file di dati di tutti i database in un pool elastico, espressa come percentuale rispetto al limite di dimensioni dei dati di un pool elastico. Il limite di dimensioni dei dati per un database o un pool elastico potrebbe essere configurato in modo da risultare inferiore al limite massimo di dimensioni dei dati. Per trovare il limite massimo di dimensioni dei dati, vedi i limiti delle risorse per database vCore, pool elastici vCore, database DTU e pool elastici DTU.
Percentuale spazio dati allocata allocated_data_storage_percent Per i pool elastici, questa metrica mostra la quantità di spazio di archiviazione occupato dai file di dati di tutti i database in un pool elastico rispetto al limite di dimensioni dei dati del pool, espressa come percentuale.
Percentuale log tempdb usata tempdb_log_used_percent Questa metrica mostra l’utilizzo dello spazio del log delle transazioni nel database tempdb rispetto alle dimensioni massime del log, espressa come percentuale. Per altre informazioni, vedi tempdb nel database SQL di Azure.
Connessioni riuscite connection_successful Questa metrica mostra il numero di connessioni stabilite correttamente a un database. Questa metrica può essere suddivisa per due dimensioni SslProtocol e ValidatedDriverNameAndVersion, per visualizzare il numero di connessioni che usano una versione specifica del protocollo di crittografia o un driver specifico del client.
Connessione non riuscite: errori di sistema connection_failed Questa metrica mostra il numero di tentativi di connessione a un database non riusciti a causa di errori interni del servizio. In genere, tali errori sono temporanei. Questa metrica può essere suddivisa per due dimensioni Error e ValidatedDriverNameAndVersion, per visualizzare il numero di tentativi di connessione non riusciti a causa di un errore specifico o da uno specifico driver del client.
Connessioni non riuscite: errori utente connection_failed_user_error Questa metrica mostra il numero di tentativi di connessione a un database non riusciti a causa di errori correggibili dall'utente, come una password errata o una connessione bloccata dal firewall. Questa metrica può essere suddivisa per due dimensioni Error e ValidatedDriverNameAndVersion, per visualizzare il numero di tentativi di connessione non riusciti a causa di un errore specifico o da uno specifico driver del client.
Deadlock deadlock Questa metrica mostra il numero di deadlock in un database.
Disponibilità availability La disponibilità viene determinata in base al database operativo per le connessioni. Per ogni punto dati di un minuto, i valori possibili sono 100% o 0%. Per altre informazioni, vedere Metrica di disponibilità.

Metrica di disponibilità

La metrica Disponibilità tiene traccia della disponibilità a livello del singolo database SQL di Azure. Questa funzionalità è attualmente disponibile solo in anteprima.

La disponibilità è granulare fino a un minuto di interruzione della connessione. La disponibilità viene determinata in base al database operativo per le connessioni. Un minuto è considerato inattivo o non disponibile se tutti i tentativi continui da parte degli utenti di stabilire una connessione al database entro il minuto falliscono a causa di un problema del servizio. In caso di indisponibilità intermittente, la durata dell'indisponibilità continua deve superare il limite dei minuti per essere considerata tempo di inattività. In genere, la latenza per visualizzare la disponibilità è inferiore a tre minuti.

Di seguito viene illustrata la logica utilizzata per calcolare la disponibilità per ogni intervallo di un minuto:

  • Se è presente almeno una connessione riuscita, la disponibilità è del 100%.
  • Se tutte le connessioni hanno esito negativo a causa di errori dell'utente, la disponibilità è del 100%.
  • Se non sono presenti tentativi di connessione, la disponibilità è del 100%.
  • Se tutte le connessioni hanno esito negativo a causa di errori di sistema, la disponibilità è 0%.
  • Attualmente, i dati delle metriche di disponibilità non sono ancora supportati per il livello di calcolo serverless e verranno visualizzati come 100%.

La metrica di disponibilità è quindi una metrica composita derivata dalle seguenti metriche esistenti:

  • Connessioni riuscite
  • Connessioni non riuscite: errori utente
  • Blocco da parte del firewall
  • Connessione non riuscite: errori di sistema

Gli errori utente includono tutte le connessioni che hanno esito negativo a causa della configurazione utente, del carico di lavoro o della gestione. Gli errori di sistema includono tutte le connessioni che hanno esito negativo a causa di problemi temporanei correlati al servizio database SQL di Azure.

Avvisi

Puoi creare regole di avviso per notificare che il valore di una metrica o più metriche non rientra in un intervallo previsto.

Puoi impostare l'ambito di una regola di avviso in diversi modi per soddisfare le tue esigenze. Ad esempio, l'ambito della regola di avviso può essere impostato su:

  • Un database singolo
  • Un pool elastico
  • Tutti i database o i pool elastici in un gruppo di risorse
  • Tutti i database o i pool elastici in una sottoscrizione all'interno di un'area di Azure
  • Tutti i database o i pool elastici in una sottoscrizione all'interno di tutte le aree

Le regole di avviso valutano periodicamente i valori aggregati delle metriche in un periodo di lookback, confrontandoli con un valore di soglia. Puoi configurare il valore di soglia, la frequenza di valutazione e il periodo di lookback.

Se viene attivata una regola di avviso, ricevi una notifica in base alle preferenze di notifica specificate nel gruppo di azioni collegato alla regola di avviso. Ad esempio, puoi ricevere un’email, un SMS o una notifica vocale. Una regola di avviso può anche attivare azioni come webhook, runbook di automazione, funzioni, app per la logica e così via. Puoi integrare gli avvisi con i prodotti di gestione dei servizi IT supportati.

Per altre informazioni sugli avvisi di Monitoraggio di Azure, vedi Panoramica degli avvisi di Monitoraggio di Azure. Per acquisire familiarità con gli avvisi delle metriche, vedi Avvisi delle metriche, Gestire le regole di avviso e Gruppi di azioni.

Le metriche e le soglie ottimali da usare nelle regole di avviso variano in base all'ampia gamma di carichi di lavoro dei clienti nel database SQL di Azure.

Gli avvisi consigliati nella tabella seguente sono un punto di partenza per definire la configurazione ottimale degli avvisi per le risorse dei database SQL di Azure. A seconda dei requisiti, la configurazione potrebbe essere diversa da questo esempio. Puoi usare soglie, frequenze di valutazione o periodi di lookback diversi. Puoi scegliere di creare avvisi aggiuntivi o usare configurazioni di regole di avviso diverse per applicazioni e ambienti diversi.

Di seguito sono riportati esempi di configurazioni tipiche delle regole di avviso.

Nome regola di avviso Metrica (segnale) Logica avvisi Quando valutare Gravità suggerita
Utilizzo elevato della CPU del server Percentuale CPU Soglia: Static
Aggregazione: Average
Operatore: Greater than
Valore di soglia :90
Controlla ogni: 1 minute
Periodo di lookback: 10 minutes
2 - Avviso
Utilizzo elevato della CPU totale Percentuale di CPU dell’istanza SQL Soglia: Static
Aggregazione: Average
Operatore: Greater than
Valore di soglia :90
Controlla ogni: 1 minute
Periodo di lookback: 10 minutes
2 - Avviso
Utilizzo elevato del ruolo di lavoro Percentuale dei ruoli di lavoro Soglia: Static
Aggregazione: Minimum
Operatore: Greater than
Valore di soglia :60
Controlla ogni: 1 minute
Periodo di lookback: 5 minutes
1: errore
Utilizzo elevato di I/O di dati Percentuale di I/O di dati Soglia: Static
Aggregazione: Average
Operatore: Greater than
Valore di soglia :90
Controlla ogni: 1 minute
Periodo di lookback: 15 minutes
3: messaggio informativo
Spazio dati insufficiente Percentuale spazio dati usato Soglia: Static
Aggregazione: Minimum
Operatore: Greater than
Valore di soglia :95
Controlla ogni: 15 minute
Periodo di lookback: 15 minutes
1: errore
Spazio log tempdb insufficiente Percentuale log tempdb usata Soglia: Static
Aggregazione: Minimum
Operatore: Greater than
Valore di soglia :60
Controlla ogni: 1 minute
Periodo di lookback: 5 minutes
1: errore
Deadlock Deadlock Soglia: Dynamic
Aggregazione: Total
Operatore: Greater than
Sensibilità soglia:Medium
Controlla ogni: 15 minutes
Periodo di lookback: 1 hour
3: messaggio informativo
Connessioni non riuscite (errori utente) Connessioni non riuscite: errori utente Soglia: Dynamic
Aggregazione: Total
Operatore: Greater than
Sensibilità soglia:Medium
Controlla ogni: 5 minutes
Periodo di lookback: 15 minutes
2 - Avviso
Connessioni non riuscite (errori di sistema) Connessione non riuscite: errori di sistema Soglia: Static
Aggregazione: Total
Operatore: Greater than
Unità Count
Valore di soglia: 10
Controlla ogni: 1 minute
Periodo di lookback: 5 minutes
2 - Avviso
Frequenza di connessione anomala Connessioni riuscite Soglia: Dynamic
Aggregazione: Total
Operatore: Greater or Less than
Sensibilità soglia:Low
Controlla ogni: 5 minutes
Periodo di lookback: 15 minutes
2 - Avviso

Alcune delle regole di avviso consigliate usano soglie dinamiche per rilevare modelli di metrica anomali che potrebbero richiedere attenzione. Le regole di avviso basate su soglie dinamiche non vengono attivate finché non vengono raccolti dati cronologici sufficienti per stabilire modelli normali. Per altre informazioni, vedi Soglie dinamiche negli avvisi delle metriche.

Per impostazione predefinita, gli avvisi delle metriche sono con stato. Ciò significa che una volta attivata una regola di avviso, l'avviso viene generato una sola volta. L'avviso rimane nello stato fired fino a quando non viene risolto, a quel punto viene inviata una notifica resolved. Una regola di avviso attiva un nuovo avviso solo dopo la risoluzione dell'avviso precedente. Gli avvisi con stato evitano notifiche frequenti su una condizione in corso. Per altre informazioni sugli avvisi con stato e senza stato, vedi Avvisi e stato.