Monitorare l'inserimento in coda con le metriche
Nel processo di inserimento in coda, Azure Esplora dati ottimizza l'inserimentodei dati per una velocità effettiva elevata eseguendo l'invio in batch di piccoli blocchi di dati in ingresso in batch in base a criteri di invio in batch configurabili. I criteri di invio in batch consentono di impostare le condizioni di attivazione per la chiusura di un batch (dimensioni dei dati, numero di BLOB o tempo trascorso). Questi batch vengono quindi inseriti in modo ottimale per ottenere risultati di query veloci.
Questo articolo illustra come usare le metriche per monitorare l'inserimento in coda in Azure Esplora dati in portale di Azure.
Fasi di invio in batch
Le fasi descritte in questa sezione si applicano a tutti gli inserimenti in batch. Per Griglia di eventi di Azure, Hub eventi di Azure, hub IoT di Azure e inserimenti di Cosmos DB, prima che i dati vengano accodati per l'inserimento di una connessione dati ottengano i dati da origini esterne ed esegua una ridisistribuzione iniziale dei dati.
L'inserimento in coda si verifica in fasi:
- Batching Manager è in ascolto della coda per i messaggi di inserimento ed elabora le richieste.
- Batching Manager ottimizza la velocità effettiva di inserimento prendendo i blocchi di dati in ingresso di piccole dimensioni ricevuti e inviando in batch gli URL in base ai criteri di invio in batch di inserimento.
- Gestione inserimento invia i comandi di inserimento al motore di archiviazione di Azure Esplora dati.
- Il motore di archiviazione di Azure Esplora dati archivia i dati inseriti, rendendoli disponibili per la query.
Azure Esplora dati offre un set di metriche di inserimento di Monitoraggio di Azure in modo da poter monitorare l'inserimento dei dati in tutte le fasi e i componenti del processo di inserimento in coda.
Le metriche di inserimento di Azure Esplora dati forniscono informazioni dettagliate su:
- Risultato dell'inserimento in coda.
- Quantità di dati inseriti.
- Latenza dell'inserimento in coda e della posizione in cui si verifica.
- Processo di invio in batch.
- Per Hub eventi, Griglia di eventi e hub IoT inserimenti: numero di eventi ricevuti.
Questo articolo illustra come usare le metriche di inserimento nella portale di Azure per monitorare l'inserimento in coda in Azure Esplora dati.
Prerequisiti
- Una sottoscrizione di Azure. Creare un account Azure gratuito.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Inserimento in coda attivo, ad esempio Hub eventi, hub IoT o Griglia di eventi.
Creare grafici delle metriche con Esplora metriche di Monitoraggio di Azure
Di seguito è riportata una spiegazione generale di come usare le metriche di Monitoraggio di Azure che verranno quindi implementate nelle sezioni successive. Usare la procedura seguente per creare grafici delle metriche con Esplora metriche di Monitoraggio di Azure in portale di Azure:
Accedere al portale di Azure e passare alla pagina di panoramica per il cluster di Azure Esplora dati.
Selezionare Metriche nella barra di spostamento a sinistra per aprire il riquadro delle metriche.
Aprire il pannello selezione ora in alto a destra nel riquadro delle metriche e modificare l'intervallo di tempo nel momento in cui si vuole analizzare. In questo articolo viene analizzato l'inserimento dati in Azure Esplora dati nelle ultime 48 ore.
Selezionare un ambito e uno spazio dei nomi della metrica:
- L'ambito è il nome del cluster Esplora dati di Azure. Nell'esempio seguente si userà un cluster denominato demo11.
- Lo spazio dei nomi delle metriche deve essere impostato su Metriche standard del cluster Kusto. Si tratta dello spazio dei nomi che contiene le metriche di Azure Esplora dati.
Selezionare il nome della metrica e il valore di aggregazione pertinente.
Per alcuni esempi in questo articolo, selezionare Aggiungi filtro e Applica suddivisione per le metriche con dimensioni. Si userà anche Aggiungi metrica per tracciare altre metriche nello stesso grafico e + Nuovo grafico per visualizzare più grafici in un'unica visualizzazione.
Ogni volta che si aggiunge una nuova metrica, si ripeteranno i passaggi quattro e cinque.
Nota
Per altre informazioni su come usare le metriche per monitorare i Esplora dati di Azure in generale e su come usare il riquadro delle metriche, vedere Monitorare le prestazioni, l'integrità e l'utilizzo di Azure Esplora dati con le metriche.
In questo articolo si apprenderà quali metriche possono essere usate per tenere traccia dell'inserimento in coda e come usare queste metriche.
Visualizzare il risultato dell'inserimento
La metrica dei risultati di inserimento fornisce informazioni sul numero totale di origini inserite correttamente e quelle che non sono state inserite.
In questo esempio si userà questa metrica per visualizzare il risultato dei tentativi di inserimento e usare le informazioni sullo stato per risolvere eventuali tentativi non riusciti.
- Nel riquadro Metriche in Monitoraggio di Azure selezionare Aggiungi metrica.
- Selezionare Il risultato dell'inserimento come valore metrica e Somma come valore di aggregazione. Questa selezione mostra i risultati di inserimento nel tempo in una linea del grafico.
- Selezionare il pulsante Applica suddivisione sopra il grafico e scegliere Stato per segmentare il grafico in base allo stato dei risultati di inserimento. Dopo aver selezionato i valori di divisione, fare clic lontano dal selettore di divisione per chiuderlo.
Ora le informazioni sulle metriche sono suddivise per stato ed è possibile visualizzare informazioni sullo stato dei risultati di inserimento suddivisi in tre righe:
- Blu per le operazioni di inserimento riuscite.
- Arancione per le operazioni di inserimento non riuscite a causa dell'entità non trovata.
- Viola per le operazioni di inserimento non riuscite a causa di una richiesta non valida.
Quando si esamina il grafico dei risultati di inserimento, tenere presente quanto segue:
- Quando si usa l'hub eventi o l'inserimento dell'hub IoT, è presente una pre-aggregazione degli eventi nel componente Connessione dati. Durante questa fase di inserimento, gli eventi vengono considerati come una singola origine da inserire. Di conseguenza, alcuni eventi vengono visualizzati come un singolo risultato di inserimento dopo la pre-aggregazione.
- Gli errori temporanei vengono ritentati internamente in un numero limitato di tentativi. Ogni errore temporaneo viene segnalato come risultato di inserimento temporaneo. Ecco perché un singolo inserimento può portare a più di un risultato di inserimento.
- Gli errori di inserimento nel grafico sono elencati dalla categoria del codice di errore. Per visualizzare l'elenco completo dei codici di errore di inserimento per categorie e cercare di comprendere meglio il possibile motivo dell'errore, vedere Codici di errore di inserimento in Azure Esplora dati.
- Per ottenere altri dettagli su un errore di inserimento, è possibile impostare i log di diagnostica di inserimento non riusciti. Tuttavia, è importante considerare che la generazione di log comporta la creazione di risorse aggiuntive e quindi un aumento del COGS (costo di beni venduti).
Visualizzare la quantità di dati inseriti
Le metriche BLOB elaborati, BLOB ricevuti e BLOB eliminati forniscono informazioni sul numero di BLOB elaborati, ricevuti e eliminati dai componenti di inserimento durante le fasi dell'inserimento in coda.
In questo esempio si useranno queste metriche per verificare la quantità di dati passati attraverso la pipeline di inserimento, la quantità di dati ricevuti dai componenti di inserimento e la quantità di dati eliminati.
BLOB elaborati
- Nel riquadro Metriche in Monitoraggio di Azure selezionare Aggiungi metrica.
- Selezionare BLOB elaborati come valore metrica e Somma come valore di aggregazione .
- Selezionare il pulsante Applica suddivisione e scegliere Tipo di componente per segmentare il grafico in base ai diversi componenti di inserimento.
- Per concentrarsi su un database specifico nel cluster, selezionare il pulsante Aggiungi filtro sopra il grafico e quindi scegliere quali valori di database includere durante il tracciato del grafico. In questo esempio vengono filtrati i BLOB inviati al database GitHub selezionando Database come proprietà, = come operatore e GitHub nell'elenco a discesa Valori . Dopo aver selezionato i valori del filtro, fare clic lontano dal selettore di filtro per chiuderlo.
Il grafico mostra ora il numero di BLOB inviati al database GitHub in ognuno dei componenti di inserimento nel tempo.
- Si noti che il 13 febbraio si verifica una diminuzione del numero di BLOB inseriti nel database GitHub nel corso del tempo. Si noti anche che il numero di BLOB elaborati in ognuno dei componenti è simile, vale a dire che circa tutti i dati elaborati nel componente Connessione dati sono stati elaborati correttamente anche da Batching Manager, Gestione inserimento e componenti del motore di archiviazione di Azure Esplora dati. Questi dati sono pronti per la query.
BLOB ricevuti
Per comprendere meglio la relazione tra il numero di BLOB ricevuti in ogni componente e il numero di BLOB elaborati correttamente in ogni componente, verrà aggiunto un nuovo grafico:
- Selezionare + Nuovo grafico.
- Scegliere gli stessi valori indicati in precedenza per Ambito, Spazio dei nomi metrica e Aggregazione e selezionare la metrica BLOB ricevuti.
- Selezionare il pulsante Applica suddivisione e scegliere Tipo di componente per suddividere la metrica BLOB ricevuti per tipo di componente.
- Selezionare il pulsante Aggiungi filtro e impostare gli stessi valori di prima per filtrare solo i BLOB inviati al database GitHub .
- Confrontando i grafici, si noti che il numero di BLOB ricevuti da ogni componente corrisponde strettamente al numero di BLOB elaborati da ogni componente. Questo confronto indica che nessun BLOB è stato eliminato durante l'inserimento.
BLOB eliminati
Per determinare se sono presenti BLOB eliminati durante l'inserimento, è necessario analizzare la metrica BLOB eliminati . Questa metrica mostra il numero di BLOB eliminati durante l'inserimento e consente di rilevare se si è verificato un problema nell'elaborazione in un componente di inserimento specifico. Per ogni BLOB eliminato, si otterrà anche una metrica dei risultati di inserimento con altre informazioni sul motivo dell'errore.
Visualizzare la latenza di inserimento
Le metriche Fase latenza e latenza di individuazione monitorano la latenza nel processo di inserimento e indicano se sono presenti latenze lunghe in Azure Esplora dati o prima che i dati arrivino ad Azure Esplora dati per l'inserimento.
- Latenza fase indica l'intervallo di tempo dal momento in cui un messaggio viene individuato da Azure Esplora dati fino a quando il relativo contenuto non viene ricevuto da un componente di inserimento per l'elaborazione.
- La latenza di individuazione viene usata per le pipeline di inserimento con connessioni dati, ad esempio hub eventi, hub IoT e Griglia di eventi. Questa metrica fornisce informazioni sull'intervallo di tempo dall'accodamento dei dati fino all'individuazione da parte di Azure Esplora dati connessioni dati. Questo intervallo di tempo è upstream di Azure Esplora dati, quindi non è incluso nella metrica Di latenza di fase che misura solo la latenza in Azure Esplora dati.
Nota
In base ai criteri di invio in batch predefiniti, il tempo di invio in batch predefinito è di cinque minuti. Pertanto, se il batch non è bloccato da altri trigger, il batch verrà bloccato dopo cinque minuti.
Quando viene visualizzata una latenza lunga fino a quando i dati non sono pronti per la query, l'analisi della latenza di fase e la latenza di individuazione può aiutare a comprendere se la latenza lunga è dovuta a una latenza prolungata in Azure Esplora dati o è upstream in Azure Esplora dati. Quando la latenza si trova in Azure Esplora dati stessa, è anche possibile rilevare il componente specifico responsabile della latenza prolungata.
Latenza fase (anteprima)
Esaminiamo prima la latenza di fase dell'inserimento in coda. Per una spiegazione di ogni fase, vedere Fasi di invio in batch.
- Nel riquadro Metriche in Monitoraggio di Azure selezionare Aggiungi metrica.
- Selezionare Stage Latency (Latenza fase) come valore Metric (Metrica ) e Avg (Media ) come valore di aggregazione .
- Selezionare il pulsante Applica suddivisione e scegliere Tipo di componente per segmentare il grafico in base ai diversi componenti di inserimento.
- Selezionare il pulsante Aggiungi filtro e filtrare i dati inviati al database GitHub . Dopo aver selezionato i valori del filtro, fare clic lontano dal selettore di filtro per chiuderlo. Il grafico mostra ora la latenza delle operazioni di inserimento inviate al database GitHub in ognuno dei componenti tramite l'inserimento nel tempo:
È possibile indicare le informazioni seguenti da questo grafico:
- La latenza nel componente Connessione dati di Hub eventi è di circa 0 secondi. Questo ha senso, perché la latenza di fase misura solo la latenza da quando un messaggio viene individuato da Azure Esplora dati.
- Il tempo più lungo nel processo di inserimento (circa 5 minuti) passa da quando il componente Batching Manager ha ricevuto dati a quando il componente Gestione inserimento ha ricevuto dati. In questo esempio vengono usati i criteri di invio in batch predefiniti per il database GitHub . Come indicato, il limite di tempo di latenza per i criteri di invio in batch predefiniti è di 5 minuti, quindi questo indica più probabilmente che quasi tutti i dati sono stati in batch per tempo e la maggior parte del tempo di latenza per l'inserimento in coda è dovuto all'invio in batch stesso.
- La latenza del motore di archiviazione nel grafico rappresenta la latenza fino a quando i dati non vengono archiviati nel motore di archiviazione di Azure Esplora dati ed è pronto per la query. È possibile notare che la latenza totale media dal momento dell'individuazione dei dati da parte di Azure Esplora dati fino a quando non è pronta per la query è di 5,2 minuti.
Latenza di individuazione
Se si usa l'inserimento con connessioni dati, è consigliabile stimare la latenza upstream in Azure Esplora dati nel tempo, purché si verifichi anche la latenza prima che Azure Esplora dati ottenga i dati per l'inserimento. A tale scopo, è possibile usare la metrica Di latenza di individuazione.
- Selezionare + Nuovo grafico.
- Selezionare Discovery Latency (Latenza individuazione) come valore Metric (Metrica ) e Avg (Media ) come valore di aggregazione .
- Selezionare il pulsante Applica suddivisione e scegliere Tipo di componente per segmentare il grafico in base ai diversi tipi di componenti di connessione dati. Dopo aver selezionato i valori di divisione, fare clic lontano dal selettore di divisione per chiuderlo.
- Si può notare che per la maggior parte della durata la latenza di individuazione è vicina a 0 secondi, a indicare che Azure Esplora dati ottenuto dati subito dopo l'accodamento dei dati. Il picco massimo di circa 300 millisecondi è intorno al 13 febbraio alle 14:00, a indicare che in questo momento il cluster di Azure Esplora dati ha ricevuto i dati circa 300 millisecondi dopo l'accodamento dei dati.
Informazioni sul processo di invio in batch
Nella seconda fase del flusso di inserimento in coda, il componente Batching Manager ottimizza la velocità effettiva di inserimento in batch inviando in batch i dati ricevuti in base ai criteri di inserimento in batch di inserimento.
Il set di metriche seguente consente di comprendere in che modo i dati vengono inseriti in batch durante l'inserimento:
- Batch elaborati: numero di batch completati per l'inserimento.
- Dimensioni batch: dimensioni stimate dei dati non compressi in un batch aggregato per l'inserimento.
- Durata batch: durata di ogni singolo batch dal momento in cui il batch viene aperto fino alla chiusura batch.
- Conteggio BLOB batch: numero di BLOB in un batch completato per l'inserimento.
Batch elaborati
Si inizierà con una visualizzazione generale del processo di invio in batch esaminando la metrica Elaborata da Batch.
- Nel riquadro Metriche in Monitoraggio di Azure selezionare Aggiungi metrica.
- Selezionare Batch elaborati come valore metrica e Somma come valore di aggregazione .
- Selezionare il pulsante Applica suddivisione e scegliere Tipo di invio in batch per segmentare il grafico in base al motivo per cui il batch è stato bloccato. Per un elenco completo dei tipi di invio in batch, vedere Tipi di invio in batch.
- Selezionare il pulsante Aggiungi filtro e filtrare i batch inviati al database GitHub . Dopo aver selezionato i valori del filtro, fare clic lontano dal selettore di filtro per chiuderlo.
Il grafico mostra il numero di batch sealed con i dati inviati al database GitHub nel tempo, suddivisi in base al tipo di invio in batch.
- Si noti che nel tempo sono presenti 2-4 batch per unità di tempo e tutti i batch vengono bloccati per tempo, come stimato nella sezione Latenza di fase, in cui è possibile notare che sono necessari circa 5 minuti per eseguire il batch dei dati in base ai criteri di invio in batch predefiniti.
Durata, dimensioni e conteggio blob del batch
A questo punto si caratterizza ulteriormente i batch elaborati.
- Selezionare il pulsante + Aggiungi grafico per ogni grafico per creare altri grafici per i valori delle metriche Durata batch, Dimensioni batch e Conteggio BLOB batch.
- Usare Avg come valore di aggregazione .
- Come nell'esempio precedente, selezionare il pulsante Aggiungi filtro e filtrare i dati inviati al database GitHub .
Dai grafici Durata batch, Dimensioni batch e Conteggio BLOB batch è possibile concludere alcune informazioni dettagliate:
La durata media del batch è di cinque minuti (in base ai criteri di invio in batch predefiniti). È consigliabile tenere presente questo aspetto quando si esamina la latenza totale di inserimento.
Nel grafico Dimensioni batch è possibile notare che le dimensioni medie dei batch sono pari a circa 200-500 MB nel tempo. Le dimensioni ottimali dei dati da inserire sono 1 GB di dati non compressi e questa dimensione viene definita anche come condizione di chiusura in base ai criteri di invio in batch predefiniti. Poiché non sono presenti 1 GB di dati da raggruppare nel tempo, non vengono visualizzati batch sealed per dimensione.
Il numero medio di BLOB nei batch è di circa 160 BLOB nel tempo, che quindi diminuisce a 60-120 BLOB. In base ai criteri di invio in batch predefiniti, un batch può bloccare quando il numero di BLOB è 1000 BLOB. Poiché non arriviamo a questo numero, non vengono visualizzati batch sealed per conteggio.
Confrontare gli eventi ricevuti con gli eventi inviati per l'inserimento
Quando si applica l'hub eventi, l'hub IoT o l'inserimento di Griglia di eventi, può essere utile confrontare il numero di eventi ricevuti da Azure Esplora dati al numero di eventi inviati dall'origine eventi ad Azure Esplora dati. Gli eventi delle metriche ricevuti, gli eventi elaborati e gli eventi eliminati consentono di eseguire questo confronto.
Eventi ricevuti
- Nel riquadro Metriche in Monitoraggio di Azure selezionare Aggiungi metrica.
- Selezionare Eventi ricevuti come valore metrica e Somma come valore di aggregazione .
- Selezionare il pulsante Aggiungi filtro sopra il grafico e scegliere Nome componente valore proprietà per filtrare gli eventi ricevuti da una connessione dati specifica definita nel cluster. In questo esempio viene applicato un filtro sulla connessione dati GitHubStreamingEvents . Dopo aver selezionato i valori del filtro, fare clic lontano dal selettore di filtro per chiuderlo.
Il grafico mostra ora il numero di eventi ricevuti dalla connessione dati selezionata nel tempo:
- In questo grafico, la connessione dati GitHubStreamingEvents riceve circa 200-500 eventi per unità di tempo nel tempo.
Eventi elaborati ed eventi eliminati
Per verificare se gli eventi sono stati eliminati da Azure Esplora dati, usare le metriche Eventi elaborati ed eventi eliminati.
- Nel grafico già creato selezionare Aggiungi metrica.
- Selezionare Eventi elaborati come valore metrica e Somma come valore di aggregazione .
- Selezionare di nuovo Aggiungi metrica e selezionare Eventi eliminati come valore metrica e Somma come valore di aggregazione.
Il grafico mostra ora il numero di eventi ricevuti, elaborati e eliminati dalla connessione dati GitHubStreamingEvents nel tempo.
- Quasi tutti gli eventi ricevuti sono stati elaborati correttamente dalla connessione dati. Esiste un evento eliminato, compatibile con il risultato dell'inserimento non riuscito a causa di una richiesta non valida visualizzata durante la visualizzazione della metrica dei risultati di inserimento.
Confrontare gli eventi ricevuti in Azure Esplora dati con i messaggi in uscita dall'hub eventi
È anche possibile confrontare il numero di eventi ricevuti con il numero di eventi inviati dall'hub eventi ad Azure Esplora dati confrontando le metriche Eventi ricevuti e Messaggi in uscita.
Nel grafico già creato per Eventi ricevuti selezionare Aggiungi metrica.
Selezionare Ambito e nella finestra di dialogo Selezionare un ambito cercare e selezionare lo spazio dei nomi dell'hub eventi che invia i dati alla connessione dati.
Selezionare Applica.
Selezionare Messaggi in uscita come valore metrica e Somma come valore di aggregazione .
Fare clic lontano dalle impostazioni per ottenere il grafico completo che confronta il numero di eventi elaborati dalla connessione dati di Azure Esplora dati al numero di eventi inviati dall'hub eventi.
- Si noti che tutti gli eventi inviati dall'hub eventi sono stati elaborati correttamente dalla connessione dati di Azure Esplora dati.
- Se nello spazio dei nomi dell'hub eventi sono presenti più hub eventi, è necessario filtrare la metrica Messaggi in uscita in base alla dimensione Nome entità per ottenere solo i dati dall'hub eventi desiderato nello spazio dei nomi dell'hub eventi.
Nota
Non è possibile monitorare il messaggio in uscita per ogni gruppo di consumer. La metrica Messaggi in uscita conta il numero totale di messaggi utilizzati da tutti i gruppi di consumer. Pertanto, se nell'hub eventi sono presenti alcuni gruppi di consumer, è possibile ottenere un numero maggiore di messaggi in uscita rispetto agli eventi ricevuti.