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.
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.
Esempi di errori causati dalla configurazione utente:
Esempi di errori causati dal carico di lavoro dell'utente:
Esempi di errori causati dalla gestione degli utenti:
- Aumento o riduzione del database o del pool elastico
- Failover pianificato o non pianificato della replica geografica
- Failover pianificato o non pianificato del gruppo di failover
- Database secondario geografico in stato di seeding
- Database in stato di ripristino a causa del ripristino temporizzato (PITR), ripristino a lungo termine (LTR) o ripristino da un database eliminato
- Database non ancora copiato (copia del database)
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.
Abilitare le regole di avviso consigliate
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.
Contenuto correlato
- Panoramica delle metriche di Monitoraggio di Azure
- Monitorare i carichi di lavoro di Azure SQL con il database watcher (anteprima)
- Analizzare le metriche con Esplora metriche di Monitoraggio di Azure
- Spiegazione dell'aggregazione e della visualizzazione delle metriche di Monitoraggio di Azure
- Panoramica sugli avvisi di Monitoraggio di Azure
- Tutorial: Creare un avviso di metriche per una risorsa di Azure
- Migliori pratiche per gli avvisi di Monitoraggio di Azure
- Risoluzione dei problemi negli avvisi relativi al Monitoraggio di Azure
- Monitoraggio e ottimizzazione delle prestazioni del database SQL di Azure e di Istanza gestita di SQL di Azure
- Configurare l'esportazione di flusso di Database SQL di Azure e della telemetria di diagnostica dell'Istanza gestita di SQL