Condividi tramite


Monitorare il database SQL di Azure con metriche e avvisi

Si applica a:Database SQL di Azure

È possibile usare le metriche di Monitoraggio di Azure per monitorare il consumo e l'integrità delle risorse del pool elastico e del database. È possibile usare gli avvisi per inviare notifiche quando i valori delle metriche indicano un potenziale problema.

Metriche

Una metrica è una serie di valori numerici misurati a intervalli di tempo regolari, spesso usando unità come count, percent, bytese così via. A seconda della natura della metrica, è possibile usare aggregazioni come total, countaverage, , minimum, per maximum calcolare i valori delle metriche per un periodo di tempo. È possibile 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.

Per tutte le metriche disponibili nel database SQL di Azure, vedere Metriche di database e metriche del pool elastico .

Annotazioni

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 database specifico o un tipo di pool elastico, ad esempio vCore, Hyperscale, serverless e così via.

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

Screenshot del portale di Azure di un grafico delle metriche visualizzato nella pagina Panoramica del database SQL di Azure.

In Metriche chiave selezionare Visualizza tutte le metriche o in qualsiasi punto del grafico per aprire Esplora metriche. Nella pagina Metriche è possibile 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 , in Monitoraggio nel menu delle 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, puoi:

  • Dimensionare correttamente il database o il pool elastico in base al 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

La tabella seguente descrive le metriche usate comunemente nel database SQL di Azure.

Nome della metrica di misura ID metrica Descrizione
Percentuale CPU cpu_percent Questa metrica mostra il consumo della CPU per il limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. Per altre informazioni, vedere Utilizzo delle risorse per carichi di lavoro utente e processi interni.
Percentuale della CPU dell'istanza SQL sql_instance_cpu_percent Questa metrica mostra il consumo totale della CPU da parte degli utenti 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, vedere Utilizzo delle risorse per carichi di lavoro utente e processi interni.
Percentuale I/O dei dati physical_data_read_percent Questa metrica mostra il consumo di I/O del file di dati per il limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. Per altre informazioni, vedere Governance di I/O dei dati.
Percentuale I/O log log_write_percent Questa metrica mostra il consumo della velocità effettiva di scrittura del log delle transazioni per il limite del carico di lavoro utente di un database o di un pool elastico, espresso come percentuale. Per altre informazioni, vedere Governance della frequenza dei log delle transazioni.
Percentuale dei lavoratori workers_percent Questa metrica mostra l'utilizzo dei thread di worker 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 il consumo di DTU per il 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, la percentuale DTU corrisponde al valore più alto tra queste tre metriche.
CPU usata cpu_used Questa metrica mostra il consumo della CPU verso il limite del carico di lavoro utente di un database o di un pool elastico, espresso come numero di vCore. Per altre informazioni, vedere Diagnosticare e risolvere i problemi di utilizzo elevato della CPU nel database SQL di Azure.
DTU usato dtu_used Questa metrica mostra il numero di DTU usate da un database o da un pool elastico.
Fatturazione CPU dell'app app_cpu_billed Per i database serverless, questa metrica mostra la quantità di calcolo (CPU e memoria) fatturata, espressa in secondi vCore. Per altre informazioni, vedere Fatturazione nel livello di calcolo serverless.
Percentuale di CPU dell'app app_cpu_percent Per i database serverless, questa metrica mostra il consumo della CPU verso il limite massimo di vCore del pacchetto dell'app, espresso come percentuale. Per altre informazioni, vedere Monitoraggio nel livello di calcolo serverless.
Percentuale di memoria dell'app app_memory_percent Per i database serverless, questa metrica mostra il consumo di memoria verso il limite massimo di memoria del pacchetto dell'app, espresso come percentuale. Per altre informazioni, vedere Monitoraggio nel livello di calcolo serverless.
Numero di 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 tutti i 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 se spesso superiore a quello usato per lo stesso database o pool elastico. Per altre informazioni, vedere Gestire lo spazio file per i database nel database SQL di Azure.
Percentuale di spazio dati utilizzata storage_percent Per i database, questa metrica mostra la quantità di spazio di archiviazione usato nei file di dati di un database per il 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 inferiore al limite massimo di dimensioni dei dati. Per trovare il limite massimo di dimensioni dei dati, vedere Limiti delle risorse per database vCore, pool elastici vCore, database DTU e pool elastici DTU.
Percentuale allocata dello spazio dati 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 verso il limite di dimensioni dei dati del pool, espresso come percentuale.
Percentuale del log usato in tempdb tempdb_log_used_percent Questa metrica mostra il consumo dello spazio del log delle transazioni nel tempdb database verso le dimensioni massime del log, espresse come percentuale. Per altre informazioni, vedere 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 usando una versione specifica del protocollo di crittografia o un driver client specifico.
Connessioni non riuscite: errori di sistema connection_failed Questa metrica mostra il numero di tentativi di connessione a un database non riuscito 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 un driver client specifico.
Connessioni non riuscite: errori utente connection_failed_user_error Questa metrica mostra il numero di tentativi di connessione a un database non riuscito a causa di errori corretti dall'utente, ad esempio una password o una connessione non corretta 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 un driver client specifico.
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 di singolo database SQL di Azure.

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

Ecco la logica usata per calcolare la disponibilità per ogni intervallo di un minuto:

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

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

  • Connessioni riuscite
  • Connessioni non riuscite: errori utente
  • Bloccato dal firewall
  • Connessioni 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
    • La replicazione geografica pianificata o il failover forzato
    • Failover pianificato o forzato del gruppo di failover
    • Database secondario Geo in stato di inizializzazione
    • 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 terminato di essere copiato (Copia del database)

Avvisi

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

È possibile impostare l'ambito di una regola di avviso in diversi modi per soddisfare le proprie 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 all'interno di tutte le aree di una sottoscrizione

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

Se viene attivata una regola di avviso , si riceve una notifica in base alle preferenze di notifica specificate nel gruppo di azioni collegato alla regola di avviso. Ad esempio, è possibile ricevere un messaggio di posta elettronica, 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. È possibile integrare gli avvisi con i prodotti di gestione dei servizi IT supportati.

Per altre informazioni sugli avvisi di Monitoraggio di Azure, vedere Panoramica degli avvisi di Monitoraggio di Azure. Per acquisire familiarità con gli avvisi delle metriche, vedere 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 del database SQL di Azure. A seconda dei requisiti, la configurazione potrebbe essere diversa da questo esempio. È possibile usare soglie, frequenze di valutazione o periodi di lookback diversi. È possibile 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 della regola di notifica Metrica (segnale) Logica di avviso Quando valutare Gravità suggerita
Utilizzo elevato della CPU utente Percentuale CPU Soglia: Aggregazione: Static
Average
Operatore: Greater than
Valore soglia:90
Controlla ogni: 1 minute
Periodo di retrospettiva: 10 minutes
2 - Avviso
Utilizzo elevato della CPU totale Percentuale della CPU dell'istanza SQL Soglia: Aggregazione: Static
Average
Operatore: Greater than
Valore soglia:90
Controlla ogni: 1 minute
Periodo di retrospettiva: 10 minutes
2 - Avviso
Utilizzo elevato dei lavoratori Percentuale dei lavoratori Soglia: Aggregazione: Static
Minimum
Operatore: Greater than
Valore soglia:60
Controlla ogni: 1 minute
Periodo di retrospettiva: 5 minutes
1 - Errore
Utilizzo elevato di I/O dei dati Percentuale I/O dei dati Soglia: Aggregazione: Static
Average
Operatore: Greater than
Valore soglia:90
Controlla ogni: 1 minute
Periodo di retrospettiva: 15 minutes
3 - A scopo informativo
Spazio dati insufficiente Percentuale di spazio dati utilizzata Soglia: Aggregazione: Static
Minimum
Operatore: Greater than
Valore soglia:95
Controlla ogni: 15 minute
Periodo di retrospettiva: 15 minutes
1 - Errore
Spazio di log ridotto tempdb Percentuale del log usato in tempdb Soglia: Aggregazione: Static
Minimum
Operatore: Greater than
Valore soglia:60
Controlla ogni: 1 minute
Periodo di retrospettiva: 5 minutes
1 - Errore
Deadlock Deadlock Soglia: Dynamic
Aggregazione: Total
Operatore: Greater than
Sensibilità soglia: Medium
Controlla ogni: 15 minutes
Periodo di retrospettiva: 1 hour
3 - A scopo 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 retrospettiva: 15 minutes
2 - Avviso
Connessioni non riuscite (errori di sistema) Connessioni non riuscite: errori di sistema Soglia: Static
Aggregazione: Total
Operatore: Greater than
Unità: Count
Valore soglia: 10
Controlla ogni: 1 minute
Periodo di retrospettiva: 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 retrospettiva: 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, vedere Soglie dinamiche negli avvisi delle metriche.

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