Considerazioni sulla gestione delle operazioni per l'acceleratore di zona di destinazione dei servizi AIS
Questo articolo fornisce considerazioni e consigli per la gestione e il monitoraggio delle operazioni quando si usano le offerte aiS.
La maggior parte delle raccomandazioni di questa sezione si applica alla versione Standard (a tenant singolo) di App per la logica, che fa parte dell'offerta di Servizio app di Azure e condivide molte delle stesse funzionalità di gestione.
Molte risorse che costituiscono AIS possono essere configurate per archiviare i dati di log, telemetria e metrica in Log Analytics/Application Insights o in posizioni di archiviazione personalizzate (queste risorse includono account di archiviazione, Hub eventi e altri).
È possibile usare queste informazioni per visualizzare l'integrità complessiva delle risorse e intraprendere le azioni di gestione appropriate.
Definizioni
I log di Monitoraggio di Azure raccolgono e organizzano i dati di log e prestazioni dalle risorse monitorate. Strumenti come Log Analytics possono quindi eseguire query o visualizzare queste informazioni di log o consentire di inviare avvisi se vengono soddisfatte determinate condizioni.
I log delle metriche di Azure raccolgono i dati numerici in un database di serie temporali dalle risorse monitorate. Strumenti come Application Insights possono quindi visualizzare questi dati, che consentono di identificare i problemi di prestazioni e runtime.
Log Analytics è un'offerta di monitoraggio di Azure, che fornisce una posizione in cui archiviare i dati di log e prestazioni, fornisce un meccanismo e un linguaggio per l'esecuzione di query su tali log (Kusto); e offre la possibilità di creare avvisi e dashboard in base a tali log (tra le altre funzionalità).
Application Insights è un'offerta di monitoraggio di Azure, che offre la possibilità di visualizzare e inviare avvisi sui dati sulle prestazioni generati dalle risorse monitorate.
Linguaggio di query Kusto (KQL) è un potente linguaggio di query ottimizzato per l'esecuzione di query e la formattazione dei dati. Ad esempio, si tratta del linguaggio di query principale per Log Analytics.
Considerazioni sulla progettazione
Prendere in considerazione la soluzione di monitoraggio nel suo complesso:
Quali risorse è necessario monitorare?
Come si tiene traccia dei messaggi che passano tra le risorse?
A quali sistemi esterni ci si connette?
Quali tipi di avvisi sono necessari?
Considerare le query necessarie per l'esecuzione. Ad esempio, è necessario sapere se una determinata richiesta richiede più tempo del previsto? In alternativa, se viene visualizzato un singolo errore rispetto a un cluster di errori?
Quale livello di rilevamento è necessario? Ad esempio, se un messaggio arriva da una terza parte, è necessario tenere traccia del messaggio tramite tutte le risorse associate?
Quali attività di gestione è necessario eseguire? Sarà necessario inviare di nuovo messaggi o file?
Per impostazione predefinita, la cronologia di esecuzione dell'app per la logica viene archiviata in Archiviazione di Azure, ma è possibile scegliere di esportare anche metriche e file di log in altre origini, ad esempio Log Analytics o un account di archiviazione esterno. Valutare come usare le informazioni di registrazione e se si usa un archivio log centralizzato.
Application Insights viene usato per fornire il monitoraggio delle prestazioni dell'applicazione. A tale scopo, la raccolta di metriche dalle risorse che costituiscono la soluzione.
Log Analytics viene usato per eseguire query sui log e configurare gli avvisi, consentendo di visualizzare l'integrità delle risorse e di comprendere i problemi che possono verificarsi. I dati di log possono includere proprietà personalizzate (vedere Proprietà rilevate di seguito).
Per altre considerazioni e consigli specifici per i servizi app, vedere l'articolo sulla gestione dell'acceleratore di zona di destinazione servizio app
Consigli sulla progettazione
Configurare Application Insights in modo che usi un'area di lavoro Log Analytics come origine dati (nota come risorsa basata sull'area di lavoro). In questo modo è possibile conservare i dati di registrazione e prestazioni in una posizione consolidata.
Configurare gli avvisi per tutte le risorse per notificare ai team appropriati gli eventi correlati alle singole risorse o al carico di lavoro.
Collegare le risorse nella soluzione ad Application Insights, se supportato. Ad esempio, un'app per la logica può essere collegata ad Application Insights, in modo che i dati di runtime e le metriche siano disponibili per l'esecuzione di query. Per un esempio, vedere qui.
Usare la funzionalità clientTrackingId di App per la logica per fornire un ID di rilevamento personalizzato, consentendo di correlare gli eventi tra le esecuzioni dell'app per la logica. È possibile usare l'intestazione x-ms-client-tracking-id per ottenere questo risultato con i trigger Request, HTTP o HTTP+WebHook.
Usare la funzionalità Proprietà rilevate di App per la logica per registrare altri dati (input o output) da un'azione nei file di log. Queste proprietà sono quindi disponibili per l'uso quando si eseguono query sui log usando KQL con Log Analytics o un'altra soluzione.
Prendere in considerazione l'uso dei tag delle risorse. I tag delle risorse consentono di gestire e organizzare le risorse in Azure. È possibile usarli per assegnare metadati alle risorse. È possibile usare questi metadati per vari scopi, ad esempio la categorizzazione delle risorse in base all'applicazione o alla business unit, il monitoraggio del costo delle risorse e l'identificazione delle risorse per la conformità.
Query Kusto di esempio
Le query seguenti illustrano come eseguire query sulle tre tabelle principali usate per i dati di log di AIS. È possibile accedere a ognuna di queste tabelle dall'opzione Log nella sezione Monitoraggio dell'app per la logica.
Le tabelle di query principali sono:
exceptions
Questa tabella contiene eventuali eccezioni registrate dalla risorsa, ad esempio le eccezioni generate dal runtime dell'app per la logica. Può essere usato per cercare la causa sottostante di eventuali problemi visualizzati, nel portale o durante l'esecuzione del codice.requests
Questa tabella registra tutte le richieste effettuate dal runtime dell'app per la logica a un'altra risorsa OPPURE a azioni specifiche all'interno del flusso di lavoro.traces
Questa tabella contiene la maggior parte dei log di runtime di App per la logica, i dettagli di registrazione sull'esecuzione del trigger, l'avvio e l'arresto del flusso di lavoro e l'esecuzione di azioni. Se sono state registrate proprietà rilevate dalle azioni, questi dati saranno disponibili nella sezione customDimensions . È quindi possibile usare la clausola extend in una query per aggiungere i dati come colonne nella risposta della query.
Flussi di lavoro con errori:
> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions.LogLevel == "Error"
Numero di esecuzioni del flusso di lavoro nelle ultime 24 ore in tutti i flussi di lavoro:
> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions\["EventName"\] == "WorkflowActionStart"
>
> \| where timestamp \> ago(1d)
>
> \| count
Frequenza di esito positivo dei trigger, grafo nel tempo
> traces
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
> \| where customDimensions\["EventName"\] == "WorkflowTriggerEnd"
> \|summarize
>
> success = countif(customDimensions\["prop\_\_status"\] ==
> "Succeeded"),
>
> failures = countif(customDimensions\["prop\_\_status"\] == "Failed")
>
> by bin(timestamp, 1m)
> \| render timechart
Passaggio successivo
Esaminare le aree di progettazione critiche per prendere in considerazione e consigli completi per l'architettura.