Monitoraggio di Azure Batch

L'articolo illustra:

  • Tipi di dati di monitoraggio che è possibile raccogliere per questo servizio.
  • Modalità di analisi dei dati.

Nota

Se si ha già familiarità con questo servizio e/o Monitoraggio di Azure e si vuole solo sapere come analizzare i dati di monitoraggio, vedere la sezione Analizza alla fine di questo articolo.

Quando si hanno applicazioni e processi aziendali critici che si basano sulle risorse di Azure, è necessario monitorare e ricevere avvisi per il sistema. Il servizio Monitoraggio di Azure raccoglie e aggrega metriche e log da ogni componente del sistema. Monitoraggio di Azure offre una visualizzazione della disponibilità, delle prestazioni e della resilienza e notifica i problemi. È possibile usare la portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure, l'API REST o le librerie client per configurare e visualizzare i dati di monitoraggio.

Tipi di risorse

Azure usa il concetto di tipi di risorse e ID per identificare tutti gli elementi in una sottoscrizione. Monitoraggio di Azure organizza in modo analogo i dati di monitoraggio di base in metriche e log in base ai tipi di risorse, detti anche spazi dei nomi. Metriche e log diversi sono disponibili per diversi tipi di risorse. Il servizio potrebbe essere associato a più tipi di risorsa.

I tipi di risorsa fanno anche parte degli ID risorsa per ogni risorsa in esecuzione in Azure. Ad esempio, un tipo di risorsa per una macchina virtuale è Microsoft.Compute/virtualMachines. Per un elenco dei servizi e dei relativi tipi di risorse associati, vedere Provider di risorse.

Per altre informazioni sui tipi di risorse per Batch, vedere Informazioni di riferimento sui dati di monitoraggio di Batch.

Archiviazione di dati

Per Monitoraggio di Azure:

  • I dati delle metriche vengono archiviati nel database delle metriche di Monitoraggio di Azure.
  • I dati di log vengono archiviati nell'archivio dei log di Monitoraggio di Azure. Log Analytics è uno strumento nella portale di Azure in grado di eseguire query su questo archivio.
  • Il log attività di Azure è un archivio separato con la propria interfaccia nella portale di Azure.

Facoltativamente, è possibile instradare i dati delle metriche e dei log attività all'archivio dei log di Monitoraggio di Azure. È quindi possibile usare Log Analytics per eseguire query sui dati e correlarli con altri dati di log.

Molti servizi possono usare le impostazioni di diagnostica per inviare i dati delle metriche e dei log ad altre posizioni di archiviazione all'esterno di Monitoraggio di Azure. Gli esempi includono Archiviazione di Azure, sistemi partner ospitati e sistemi partner non Azure usando Hub eventi.

Per informazioni dettagliate su come Monitoraggio di Azure archivia i dati, vedere Piattaforma dati di Monitoraggio di Azure.

Accedere ai log di diagnostica nell'archiviazione

Se si archiviano i log di diagnostica batch in un account di archiviazione, viene creato un contenitore di archiviazione nell'account di archiviazione non appena si verifica un evento correlato. I BLOB vengono creati in base al modello di denominazione seguente:

insights-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/
RESOURCEGROUPS/{resource group name}/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/{Batch account name}/y={four-digit numeric year}/
m={two-digit numeric month}/d={two-digit numeric day}/
h={two-digit 24-hour clock hour}/m=00/PT1H.json

Ad esempio:

insights-metrics-pt1m/resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/
RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/MYBATCHACCOUNT/y=2018/m=03/d=05/h=22/m=00/PT1H.json

Ogni PT1H.json file BLOB contiene eventi in formato JSON che si sono verificati entro l'ora specificata nell'URL del BLOB (ad esempio, h=12). Durante l'ora corrente, gli eventi vengono aggiunti al file PT1H.json mentre si verificano. Il valore dei minuti (m=00) è sempre 00 poiché gli eventi del log di diagnostica vengono suddivisi in singoli BLOB per ogni ora. Tutte le ore sono in formato UTC.

Nell'esempio seguente viene illustrata una PoolResizeCompleteEvent voce in un file di log PT1H.json . La voce include informazioni sul numero corrente e di destinazione di nodi dedicati e con priorità bassa e sull'ora di inizio e fine dell'operazione.

{ "Tenant": "65298bc2729a4c93b11c00ad7e660501", "time": "2019-08-22T20:59:13.5698778Z", "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/BATCHACCOUNTS/MYBATCHACCOUNT/", "category": "ServiceLog", "operationName": "PoolResizeCompleteEvent", "operationVersion": "2017-06-01", "properties": {"id":"MYPOOLID","nodeDeallocationOption":"Requeue","currentDedicatedNodes":10,"targetDedicatedNodes":100,"currentLowPriorityNodes":0,"targetLowPriorityNodes":0,"enableAutoScale":false,"isAutoPool":false,"startTime":"2019-08-22 20:50:59.522","endTime":"2019-08-22 20:59:12.489","resultCode":"Success","resultMessage":"The operation succeeded"}}

Per accedere ai log nell'account di archiviazione a livello di codice, usare le API Archiviazione.

Metriche della piattaforma di Monitoraggio di Azure

Monitoraggio di Azure fornisce metriche della piattaforma per la maggior parte dei servizi. Le metriche sono le seguenti:

  • Definito singolarmente per ogni spazio dei nomi.
  • Archiviato nel database delle metriche delle serie temporali di Monitoraggio di Azure.
  • Leggero e in grado di supportare avvisi quasi in tempo reale.
  • Usato per tenere traccia delle prestazioni di una risorsa nel tempo.

Raccolta: Monitoraggio di Azure raccoglie automaticamente le metriche della piattaforma. Non è richiesta alcuna configurazione.

Routing: in genere è anche possibile instradare le metriche della piattaforma ai log di Monitoraggio di Azure/Log Analytics in modo da poterle eseguire query con altri dati di log. Per altre informazioni, vedere l'impostazione di diagnostica Metriche. Per informazioni su come configurare le impostazioni di diagnostica per un servizio, vedere Creare impostazioni di diagnostica in Monitoraggio di Azure.

Per un elenco di tutte le metriche è possibile raccogliere per tutte le risorse in Monitoraggio di Azure, vedere Metriche supportate in Monitoraggio di Azure.

Esempi di metriche in un account Batch sono Gli eventi di creazione del pool, il numero di nodi con priorità bassa e gli eventi di completamento attività. Queste metriche consentono di identificare le tendenze e possono essere usate per l'analisi dei dati.

Nota

Le metriche generate negli ultimi 3 minuti potrebbero ancora essere aggregati, quindi i valori potrebbero essere sottoreport durante questo intervallo di tempo. Il recapito delle metriche non è garantito e potrebbe essere influenzato dal recapito non ordinato, dalla perdita di dati o dalla duplicazione.

Per un elenco completo delle metriche disponibili per Batch, vedere Informazioni di riferimento per i dati di monitoraggio di Batch.

Log delle risorse di Monitoraggio di Azure

I log delle risorse forniscono informazioni dettagliate sulle operazioni eseguite da una risorsa di Azure. I log vengono generati automaticamente, ma è necessario indirizzarli ai log di Monitoraggio di Azure per salvarli o eseguirne query. I log sono organizzati in categorie. Uno spazio dei nomi specificato potrebbe avere più categorie di log delle risorse.

Raccolta: i log delle risorse non vengono raccolti e archiviati fino a quando non si crea un'impostazione di diagnostica e si instradano i log a una o più posizioni. Quando si crea un'impostazione di diagnostica, si specificano quali categorie di log raccogliere. Esistono diversi modi per creare e gestire le impostazioni di diagnostica, tra cui il portale di Azure, a livello di codice e anche Criteri di Azure.

Routing: l'impostazione predefinita consigliata consiste nel instradare i log delle risorse ai log di Monitoraggio di Azure in modo da poterli eseguire query con altri dati di log. Sono disponibili anche altre località, ad esempio Archiviazione di Azure, Hub eventi di Azure e alcuni partner di monitoraggio Microsoft. Per altre informazioni, vedere Log delle risorse di Azure e destinazioni del log delle risorse.

Per informazioni dettagliate sulla raccolta, l'archiviazione e il routing dei log delle risorse, vedere Impostazioni di diagnostica in Monitoraggio di Azure.

Per un elenco di tutte le categorie di log delle risorse disponibili in Monitoraggio di Azure, vedere Log delle risorse supportate in Monitoraggio di Azure.

Tutti i log delle risorse in Monitoraggio di Azure hanno gli stessi campi di intestazione, seguiti da campi specifici del servizio. Lo schema comune è descritto in Schema dei log delle risorse di Monitoraggio di Azure.

Per le categorie di log delle risorse disponibili, le tabelle di Log Analytics associate e gli schemi dei log per Batch, vedere Informazioni di riferimento sui dati di monitoraggio di Batch.

È necessario abilitare in modo esplicito le impostazioni di diagnostica per ogni account Batch da monitorare.

Per il servizio Batch, è possibile raccogliere i log seguenti:

  • ServiceLog: eventi generati dal servizio Batch durante la durata di una singola risorsa, ad esempio un pool o un'attività.
  • AllMetrics: metriche a livello di account Batch.

Lo screenshot seguente mostra un'impostazione di diagnostica di esempio che invia allLogs e AllMetrics a un'area di lavoro Log Analytics.

Screenshot della pagina Impostazioni di diagnostica che mostra un esempio.

Quando si crea un pool di Azure Batch, è possibile installare una delle estensioni correlate al monitoraggio seguenti nei nodi di calcolo per raccogliere e analizzare i dati:

Per un confronto tra le diverse estensioni e agenti e i dati raccolti, vedere Confrontare gli agenti.

Finestra Log attività di Azure

Il log attività contiene eventi a livello di sottoscrizione che tengono traccia delle operazioni per ogni risorsa di Azure, come illustrato dall'esterno di tale risorsa; Ad esempio, la creazione di una nuova risorsa o l'avvio di una macchina virtuale.

Raccolta: gli eventi del log attività vengono generati e raccolti automaticamente in un archivio separato per la visualizzazione nella portale di Azure.

Routing: è possibile inviare i dati del log attività ai log di Monitoraggio di Azure in modo da poterli analizzare insieme ad altri dati di log. Sono disponibili anche altre località, ad esempio Archiviazione di Azure, Hub eventi di Azure e alcuni partner di monitoraggio Microsoft. Per altre informazioni su come indirizzare il log attività, vedere Panoramica del log attività di Azure.

Per gli account Batch in particolare, il log attività raccoglie gli eventi correlati alla creazione ed eliminazione degli account e alla gestione delle chiavi.

Analizzare i dati di monitoraggio

Sono disponibili molti strumenti per l'analisi dei dati di monitoraggio.

Strumenti di Monitoraggio di Azure

Monitoraggio di Azure supporta gli strumenti di base seguenti:

  • Esplora metriche, uno strumento nella portale di Azure che consente di visualizzare e analizzare le metriche per le risorse di Azure. Per altre informazioni, vedere Analizzare le metriche con Esplora metriche di Monitoraggio di Azure.

  • Log Analytics, uno strumento nella portale di Azure che consente di eseguire query e analizzare i dati di log usando il linguaggio di query Kusto (KQL). Per altre informazioni, vedere Introduzione alle query di log in Monitoraggio di Azure.

  • Log attività, che dispone di un'interfaccia utente nel portale di Azure per la visualizzazione e le ricerche di base. Per eseguire analisi più approfondite, è necessario instradare i dati ai log di Monitoraggio di Azure ed eseguire query più complesse in Log Analytics.

Gli strumenti che consentono una visualizzazione più complessa includono:

  • Dashboard che consentono di combinare diversi tipi di dati in un singolo riquadro nel portale di Azure.
  • Cartelle di lavoro, report personalizzabili che è possibile creare nel portale di Azure. Le cartelle di lavoro possono includere testo, metriche e query di log.
  • Grafana, uno strumento open platform che eccelle nei dashboard operativi. È possibile usare Grafana per creare dashboard che includono dati da più origini diverse da Monitoraggio di Azure.
  • Power BI, un servizio di analisi aziendale che fornisce visualizzazioni interattive tra varie origini dati. È possibile configurare per Power BI per importare automaticamente i dati di log da Monitoraggio di Azure per sfruttare i vantaggi di queste visualizzazioni.

Quando si analizzano le metriche batch basate sul conteggio, ad esempio Numero di core dedicati o Conteggio nodi con priorità bassa, usare l'aggregazione Media . Per le metriche basate su eventi, ad esempio Eventi di completamento ridimensionamento pool, usare l'aggregazione Count . Evitare di usare l'aggregazione Sum , che aggiunge i valori di tutti i punti dati ricevuti nel periodo del grafico.

Strumenti di esportazione di Monitoraggio di Azure

È possibile ottenere dati da Monitoraggio di Azure in altri strumenti usando i metodi seguenti:

  • Metriche: usare l'API REST per le metriche per estrarre i dati delle metriche dal database delle metriche di Monitoraggio di Azure. L'API supporta espressioni di filtro per perfezionare i dati recuperati. Per altre informazioni, vedere Informazioni di riferimento sull'API REST di Monitoraggio di Azure.

  • Log: usare l'API REST o le librerie client associate.

  • Un'altra opzione è l'esportazione dei dati dell'area di lavoro.

Per iniziare a usare l'API REST per Monitoraggio di Azure, vedere Procedura dettagliata per l'API REST di monitoraggio di Azure.

Query Kusto

È possibile analizzare i dati di monitoraggio nell'archivio Log/Log Analytics di Monitoraggio di Azure usando il linguaggio di query Kusto (KQL).

Importante

Quando si seleziona Log dal menu del servizio nel portale, Log Analytics si apre con l'ambito della query impostato sul servizio corrente. Questo ambito significa che le query di log includeranno solo i dati di quel tipo di risorsa. Per eseguire una query che include dati di altri servizi di Azure, selezionare Log dal menu Monitoraggio di Azure. Per i dettagli, vedere Ambito e intervallo di tempo delle query su log in Log Analytics di Monitoraggio di Azure.

Per un elenco delle query comuni per qualsiasi servizio, vedere l'interfaccia query di Log Analytics.

Query di esempio

Ecco alcune query di log di esempio per Batch:

Ridimensiona pool: elenca i tempi di ridimensionamento in base al pool e al codice del risultato (esito positivo o negativo):

AzureDiagnostics
| where OperationName=="PoolResizeCompleteEvent"
| summarize operationTimes=make_list(startTime_s) by poolName=id_s, resultCode=resultCode_s

Durata attività: assegna il tempo trascorso delle attività in secondi, dall'inizio dell'attività al completamento dell'attività.

AzureDiagnostics
| where OperationName=="TaskCompleteEvent"
| extend taskId=id_s, ElapsedTime=datetime_diff('second', executionInfo_endTime_t, executionInfo_startTime_t) // For longer running tasks, consider changing 'second' to 'minute' or 'hour'
| summarize taskList=make_list(taskId) by ElapsedTime

Attività non riuscite per processo: elenca le attività non riuscite per processo padre.

AzureDiagnostics
| where OperationName=="TaskFailEvent"
| summarize failedTaskList=make_list(id_s) by jobId=jobId_s, ResourceId

Avvisi

Gli avvisi di Monitoraggio di Azure avvisano in modo proattivo quando vengono rilevate condizioni specifiche nei dati di monitoraggio. Consentono di identificare e risolvere i problemi del sistema prima che gli utenti li notino. Per altre informazioni, vedere Avvisi di Monitoraggio di Azure.

Esistono molte origini di avvisi comuni per le risorse di Azure. Per esempi di avvisi comuni per le risorse di Azure, vedere Query di avviso di log di esempio. Il sito Avvisi di base di Monitoraggio di Azure (AMBA) offre un metodo semi-automatizzato per implementare importanti avvisi, dashboard e linee guida per le metriche della piattaforma. Il sito si applica a un sottoinsieme di servizi di Azure in continua espansione, inclusi tutti i servizi che fanno parte della zona di destinazione di Azure (ALZ).

Lo schema di avviso comune standardizza l'utilizzo delle notifiche di avviso di Monitoraggio di Azure. Per altre informazioni, vedere Schema di avviso comune.

Tipi di avviso:

È possibile creare avvisi su qualsiasi metrica o fonte di dati di log nella piattaforma di dati di Monitoraggio di Azure. Esistono molti tipi diversi di avvisi a seconda dei servizi monitorati e dei dati di monitoraggio raccolti. Diversi tipi di avvisi presentano diversi vantaggi e svantaggi. Per altre informazioni, vedere Scegliere il tipo di avviso di monitoraggio corretto.

L'elenco seguente descrive i tipi di avvisi di Monitoraggio di Azure che è possibile creare:

  • Gli avvisi delle metriche valutano le metriche delle risorse a intervalli regolari. Le metriche possono essere metriche della piattaforma, metriche personalizzate, log di Monitoraggio di Azure convertiti in metriche o metriche di Application Insights. Gli avvisi delle metriche possono anche applicare più condizioni e soglie dinamiche.
  • Gli avvisi di log consentono agli utenti di usare una query di Log Analytics per valutare i log delle risorse a una frequenza predefinita.
  • Gli avvisi del log attività vengono attivati quando si verifica un nuovo evento del log attività che corrisponde alle condizioni definite. Gli avvisi sull'integrità delle risorse e gli avvisi sull'integrità dei servizi sono avvisi di log delle attività che segnalano l'integrità dei servizi e delle risorse.

Alcuni servizi di Azure supportano anche avvisi di rilevamento intelligente, avvisi prometheus o regole di avviso consigliate.

Per alcuni servizi, è possibile monitorare su larga scala applicando la stessa regola di avviso delle metriche a più risorse dello stesso tipo presenti nella stessa area di Azure. Le singole notifiche vengono inviate per ogni risorsa monitorata. Per i servizi e i cloud di Azure supportati, vedere Monitorare più risorse con una regola di avviso.

Nota

Se si crea o si esegue un'applicazione che viene eseguita nel servizio, Application Insights di Monitoraggio di Azure potrebbe offrire più tipi di avvisi.

Regole di avviso batch

Poiché il recapito delle metriche può essere soggetto a incoerenze, ad esempio il recapito non ordinato, la perdita di dati o la duplicazione, è consigliabile evitare avvisi che si attivano in un singolo punto dati. Usare invece le soglie per tenere conto di queste incoerenze in un periodo di tempo.

Ad esempio, è possibile configurare un avviso della metrica quando il numero di core con priorità bassa scende a un determinato livello. È quindi possibile usare questo avviso per regolare la composizione dei pool. Per ottenere risultati ottimali, impostare un periodo di 10 o più minuti in cui l'avviso viene attivato se il numero medio di core con priorità bassa scende inferiore al valore soglia per l'intero periodo. Questo periodo di tempo consente alle metriche di aggregare in modo da ottenere risultati più accurati.

Nella tabella seguente sono elencati alcuni trigger di regola di avviso per Batch. Queste regole di avviso sono solo esempi. È possibile impostare avvisi per qualsiasi metrica, voce di log o voce del log attività elencata nel riferimento ai dati di monitoraggio di Batch.

Tipo di avviso Condizione Descrizione
Metric Numero di nodi inutilizzabili Ogni volta che il numero di nodi inutilizzabili è maggiore di 0
Metric Eventi attività non riuscite Ogni volta che l'attività totale ha esito negativo eventi è maggiore della soglia dinamica

Elementi consigliati di Advisor

Per alcuni servizi, se si verificano condizioni critiche o modifiche imminenti durante le operazioni sulle risorse, viene visualizzato un avviso nella pagina Panoramica del servizio nel portale. È possibile trovare altre informazioni e correzioni consigliate per l'avviso in Raccomandazioni di Advisor in Monitoraggio nel menu a sinistra. Durante le normali operazioni, non vengono visualizzate raccomandazioni di Advisor.

Per altre informazioni su Azure Advisor, vedere Panoramica di Azure Advisor.

Altre opzioni di monitoraggio di Batch

Batch Explorer è uno strumento client autonomo, gratuito e ricco di funzionalità che consente di creare, eseguire il debug e monitorare le applicazioni di Azure Batch. È possibile usare Azure Batch Insights con Batch Explorer per ottenere statistiche di sistema per i nodi Batch, ad esempio i contatori delle prestazioni delle macchine virtuali.

Nelle applicazioni Batch è possibile usare la libreria Batch .NET per monitorare o eseguire query sullo stato delle risorse, inclusi processi, attività, nodi e pool. Ad esempio:

È possibile usare le API Batch per creare query di elenco per processi, attività, nodi di calcolo e altre risorse di Batch. Per altre informazioni su come filtrare le query di elenco, vedere Creare query per elencare in modo efficiente le risorse batch.

In alternativa, invece di eseguire query di elenco potenzialmente dispendiose in termini di tempo che restituiscono informazioni dettagliate su grandi raccolte di attività o nodi, è possibile usare le operazioni Recupera conteggi attività ed Elenca conteggi dei nodi del pool per ottenere i conteggi per le attività batch e i nodi di calcolo. Per altre informazioni, vedere Monitorare le soluzioni Batch conteggiando le attività e i nodi in base allo stato.

È possibile integrare Application Insights con le applicazioni Azure Batch per instrumentare il codice con metriche personalizzate e traccia. Per una procedura dettagliata su come aggiungere Application Insights a una soluzione Batch .NET, instrumentare il codice dell'applicazione, monitorare l'applicazione nel portale di Azure e creare dashboard personalizzati, vedere Monitorare ed eseguire il debug di un'applicazione Azure Batch .NET con Application Insights e l'esempio di codice associato.