Analizza i log generati dal sistema utilizzando Application Insights

Puoi connettere le tue app canvas ad Application Insights, una funzionalità di Monitoraggio di Azure. Application Insights include potenti strumenti di analisi per aiutarti a diagnosticare i problemi e capire cosa fanno realmente gli utenti con le tue app. Puoi raccogliere informazioni per aiutarti a prendere decisioni aziendali migliori e migliorare la qualità delle tue app.

In questa guida introduttiva, utilizziamo un'app canvas chiamata Kudos per esplorare i concetti di log generati dal sistema nelle app canvas e applicarli alle tue app. L'app Kudos di esempio fa parte di una suite di app per il coinvolgimento dei dipendenti disponibili per il download da Starter kit esperienza dipendenti.

Prerequisiti

Nota

Per visualizzare le informazioni di telemetria, l'amministratore del tenant deve abilitare Informazioni dettagliate sulle app canvas. Accedi come amministratore all'interfaccia di amministrazione di Power Platform. Vai a Impostazioni > Impostazioni del tenant > Informazioni dettagliate sulle app canvas. Nel riquadro Informazioni dettagliate sulle app canvas, impostare l'interruttore su On e salva le modifiche. Per ulteriori informazioni, vedi Impostazioni tenant.

Facoltativo

Crea una risorsa Application Insights

Prima di poter inviare i log generati dal sistema per un'app, devi creare una risorsa Application Insights per memorizzare gli eventi.

  1. Accedi al portale di Azure.

  2. Cerca Application Insights:

    Application Insights.

  3. Crea una risorsa Application Insights:

    Aggiungi una risorsa Application Insights.

  4. Immetti i valori appropriati e seleziona Rivedi + crea.

    Per maggiori dettagli, leggi Creare una risorsa Application Insights.

    Crea una risorsa.

  5. Dopo che l'istanza Application Insights è stata creata, copia la Chiave di strumentazione nella panoramica dell'istanza per l'utilizzo in un passaggio successivo.

    Copia la chiave di strumentazione.

Connettere l'app ad Application Insights

Nota

  • Quando si specifica una chiave di strumentazione, tenere presente che i dati possono essere inviati tra tenant. Gli eventi di traccia vengono inviati alla risorsa App Insights che corrisponde alla chiave di strumentazione impostata per l'app, anche se l'istanza di App Insights di destinazione si trova in un tenant diverso dall'app.
  • Prestare attenzione durante l'importazione di file con estensione .msapp esistenti poiché potrebbero essere presenti chiavi di strumentazione per App Insights. Apri manualmente l'app dopo l'importazione per verificare che venga utilizzata la chiave di strumentazione App Insights corretta.
  1. Accedi a Power Apps.

  2. Nel riquadro di spostamento sinistro selezionare App. Dall'elenco delle app, seleziona l'app Kudos e quindi seleziona Modifica:

    Modifica l'app Kudos.

    Nota

    Puoi anche creare una nuova app o modificare qualsiasi app esistente.

  3. Seleziona l'oggetto App dalla visualizzazione ad albero del riquadro di spostamento a sinistra e incolla l'oggetto Chiave di strumentazione:

    Aggiungi la chiave di strumentazione.

  4. Salva e pubblica l'app.

  5. Riproduci l'app pubblicata e sfoglia le diverse schermate.

Mentre sfogli le schermate dell'app, gli eventi vengono automaticamente registrati in Application Insights, inclusi i dettagli di utilizzo come:

  • Da dove si accede all'app
  • Quali dispositivi vengono utilizzati
  • I tipi di browser utilizzati

Importante

È necessario riprodurre l'app pubblicata per inviare eventi ad Application Insights. Gli eventi non vengono inviati ad Application Insights quando visualizzi l'anteprima dell'app Power Apps Studio.

Visualizzare gli eventi in Application Insights

  1. Accedi al portale di Azure e apri la risorsa Application Insights che hai creato in precedenza.

  2. Scorri verso il basso nel riquadro di spostamento a sinistra e seleziona Utenti sotto la sezione Utilizzo.

    Nota

    Viene visualizzata la pagina Utenti con i dettagli di utilizzo dell'app, come ad esempio:

    • Numero di utenti che hanno visualizzato l'app
    • Numero di sessioni utente
    • Numero di eventi registrati
    • Utenti dei sistemi operativi e dettagli della versione del browser
    • Regione e posizione degli utenti

    Ulteriori informazioni sull'analisi degli eventi, sulle sessioni e sugli utenti in Application Insights.

  3. Seleziona una delle sessioni utente per visualizzare dettagli specifici. È possibile visualizzare informazioni quali la durata della sessione e le schermate visitate:

    Dettagli di utilizzo per gli utenti.

  4. Seleziona la visualizzazione Eventi nel riquadro di spostamento a sinistra nella sezione Utilizzo. Puoi visualizzare un riepilogo di tutte le schermate visualizzate in tutte le sessioni dell'app:

    Dettagli dell'evento per l'app.

Suggerimento

Sono disponibili altre funzionalità di Application Insights, ad esempio:

Creare eventi di traccia personalizzati

Puoi scrivere tracce personalizzate direttamente su Application Insights e iniziare ad analizzare informazioni specifiche per il tuo scenario. La funzione Analisi ti consente di raccogliere:

  • Informazioni di utilizzo granulari per i controlli sugli schermi
  • Quali utenti specifici accedono alla tua app
  • Quali errori si verificano

La traccia può anche aiutare a diagnosticare i problemi perché puoi inviare un trail di informazioni mentre gli utenti sfogliano la tua app ed eseguono diverse azioni. Analizza i messaggi inviati a Application Insights: hanno una delle tre gravità:

  • Informazioni
  • Avviso
  • Error

A seconda del proprio scenario, è possibile scegliere di inviare un messaggio di traccia con la gravità appropriata. Puoi eseguire una query sui dati e intraprendere azioni specifiche in base alla gravità.

Nota

Se stai registrando dati personali, tieni presente i tuoi obblighi in relazione alle varie leggi e normative sulla privacy. Fai riferimento al Centro protezione Microsoft e al Portale Service Trust per maggiori informazioni.

Ora crea un nuovo componente nella tua app per raccogliere il feedback su ogni schermata e scrivi gli eventi per Application Insights.

  1. Accedi a Power Apps.

  2. Nel riquadro di spostamento sinistro selezionare App. Dall'elenco delle app, seleziona l'app Kudos e quindi seleziona Modifica.

    Nota

    Puoi anche creare una nuova app o modificare un'app esistente.

  3. Seleziona l'opzione Componenti nella Visualizzazione ad albero:

    Componenti.

  4. Seleziona Nuovo componente, quindi ridimensiona la larghezza su 200 e l'altezza su 75:

    Altezza e larghezza.

  5. Seleziona Inserisci dal menu e quindi seleziona Icone per aggiungere Emoji: Faccia imbronciata ed Emoji: Faccia sorridente:

    Aggiungi le icone.

  6. Seleziona Nuova proprietà personalizzata per creare una proprietà personalizzata:

    Crea la proprietà personalizzata.

  7. Immetti la proprietà Nome e Nome visualizzato, ad esempio FeedbackSceen.

  8. Immetti la Descrizione della proprietà.

  9. Seleziona Tipo di proprietà come Input e Tipo di dati come Schermata:

    Personalizza la proprietà.

    Nota

    La proprietà Input ti consente di acquisire il nome della schermata e il relativo componente in modo da poter registrare queste informazioni in Application Insights.

  10. Seleziona il componente nella Visualizzazione ad albero, seleziona Altre azioni (), quindi seleziona Rinomina per rinominare il componente con un nome significativo come FeedbackComponent.

    Rinomina il componente e le icone.

  11. Seleziona le icone, seleziona Altre azioni (), quindi seleziona Rinomina per rinominare le icone con nomi significativi, come FrownIcon e SmileIcon.

  12. Seleziona FrownIcon, seleziona la proprietà OnSelect, quindi immetti la seguente espressione nella barra della formula:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    Formula dell'icona Faccia imbronciata.

    Nota

    L'espressione formula invia UserName, UserEmail, Schermata e Feedback (con il valore -1) ad Application Insights.

  13. Seleziona SmileIcon, seleziona la proprietà OnSelect, quindi immetti la seguente espressione nella barra della formula:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. Aggiungi il componente a una delle schermate della tua app:

    Aggiungi il componente feedback.

  15. Seleziona Salva e quindi seleziona Pubblica per salvare e pubblicare la tua app.

  16. Riproduci l'app pubblicata e invia un feedback per la faccia sorridente e la faccia imbronciata dai tuoi schermi.

    Importante

    È necessario riprodurre l'app pubblicata per inviare eventi ad Application Insights. Gli eventi non vengono inviati ad Application Insights quando visualizzi l'anteprima dell'app Power Apps Studio.

    Riproduci l'app pubblicata.

Analizzare i dati in Application Insights

Ora puoi iniziare ad analizzare i dati inviati utilizzando la funzione Trace dalla tua app in Application Insights.

  1. Accedi al portale di Azure e apri la risorsa Application Insights che hai creato in precedenza:

    Selezionare Application Insights.

  2. Seleziona Log in Monitoraggio dal riquadro di spostamento a sinistra:

    Seleziona Log.

  3. Immetti la query seguente e seleziona Esegui per visualizzare i commenti ricevuti dalla tua app:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    Visualizza il feedback dell'app.

  4. Seleziona una riga nei risultati ed espandi il campo customDimensions.

    I valori per Schermo, UserName, UserEmail e FeedbackValue per l'evento OnSelect dell'icona faccia sorridente e la faccia imbronciata nel componente. I valori vengono inoltre registrati per ogni evento inviato ad Application Insights, come appId, appName e appSessionId.

    Espandi le dimensioni personalizzate.

  5. Con la seguente query di esempio, puoi estendere le proprietà delle dimensioni personalizzate JSON e proiettare le colonne nella visualizzazione dei risultati.

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    Estendi la query CustomDimensions.

    Suggerimento

    Le query di log sono estremamente potenti. Puoi usarle per unire più tabelle, aggregare grandi quantità di dati ed eseguire operazioni complesse. Altre informazioni sulle query di log.

Monitorare gli errori non gestiti (sperimentale)

[Questa sezione contiene la documentazione non definitiva ed è soggetta a modifiche].

Importante

  • Questa è una funzionalità sperimentale.
  • Le funzionalità sperimentali non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Queste funzionalità sono disponibili prima di una versione ufficiale di modo che i clienti possano ottenere un accesso prioritario e fornire dei commenti.

Non puoi sempre prevedere e pianificare tutti gli errori che potrebbero verificarsi durante l'esecuzione dell'app. Gli errori nelle formule di Power Fx non gestiti vengono segnalati agli utenti come messaggi banner. Possono anche essere segnalati ad Application Insights per aiutarti a comprenderne la frequenza e la gravità senza affidarti agli utenti della tua app per segnalare i problemi. Puoi anche configurare avvisi in tempo reale quando si verificano errori di runtime per adottare un approccio più proattivo.

Abilitare il passaggio degli errori ad Application Insights

È necessario abilitare l'impostazione che consente a Power Apps di passare gli errori di runtime non gestiti ad Application Insights di Azure.

Avviso

L'abilitazione di questa impostazione potrebbe comportare costi aggiuntivi relativi all'archiviazione dei registri di Application Insights.

Per abilitare il passaggio degli errori, vai a Impostazioni > Funzionalità in arrivo > Sperimentale > Passa errori ad Azure Application Insights mantenendo l'app canvas aperta per la modifica. Salva e pubblica l'app.

Abilitare l'impostazione Passa errori ad Azure Application Insights.

Eventi di errore in Application Insights

Gli errori di Power Fx non gestiti riscontrati dagli utenti durante il runtime dell'app vengono segnalati nella tabella Analisi. Gli errori non gestiti possono essere identificati e distinti da altri eventi di errore mediante il messaggio di evento "Errore non gestito". La dimensione "severityLevel" di questi eventi è 3 (TraceSeverity.Error).

I messaggi di errore dettagliati sono forniti nella dimensione "errors" della proprietà customDimension. Nelle situazioni in cui si sono verificati più errori durante la stessa operazione, gli errori vengono consolidati nella dimensione "errori" di un singolo evento di analisi. I messaggi di errore sono gli stessi riportati in Monitoraggio durante una sessione di debug dal vivo.

La seguente query di esempio identifica gli errori non gestiti ed espande tutti i messaggi di errore inclusi nell'evento di analisi:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

Esempio di output per una query di esempio.

Traccia delle correlazioni (sperimentale)

[Questa sezione contiene la documentazione non definitiva ed è soggetta a modifiche].

Importante

  • Questa è una funzionalità sperimentale.
  • Le funzionalità sperimentali non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Queste funzionalità sono disponibili prima di una versione ufficiale di modo che i clienti possano ottenere un accesso prioritario e fornire dei commenti.

Le connessioni a servizi e dati esterni sono fondamentali per la maggior parte delle app. L'analisi di correlazione genera e propaga le informazioni di contesto per unire i log generati dal sistema attraverso un'app canvas e le sue connessioni, in base a determinate limitazioni. Ad esempio, l'app può chiamare un connettore personalizzato che a sua volta chiama una funzione di Azure o altro API REST. L'analisi di correlazione consente di correlare le azioni eseguite nell'app con le chiamate API sottostanti tra i livelli. Ciò può risultare utile nella risoluzione dei problemi.

L'analisi di correlazione dell'app canvas è un'implementazione dell'analisi del contesto e segue la specifica W3C.

Abilitare la traccia delle correlazioni

Avviso

L'abilitazione di questa impostazione potrebbe comportare costi aggiuntivi relativi all'archiviazione dei registri di Application Insights.

Per abilitare la funzionalità di traccia delle correlazioni, vai a Impostazioni > Funzionalità in arrivo > Sperimentale > Abilita traccia delle correlazioni di Azure Application Insights mantenendo l'app canvas aperta per la modifica. Salva e pubblica l'app.

Abilita la traccia delle correlazioni di Azure Application Insights.

Limiti

  • L'analisi di correlazione è disponibile solo per i connettori personalizzati. Altri tipi di connettori non sono supportati.
  • Le richieste HTTP vengono acquisite in Application Insights solo se il servizio connesso è anche collegato ad Application Insights.

Utilizzare la traccia delle correlazioni

Se abilitata, l'analisi di correlazione aggiunge un nuovo evento di log generato dal sistema nella tabella dipendenze dell'istanza delle app canvas Application Insights. Questo evento viene registrato nel momento in cui viene ricevuta una risposta da una chiamata di rete. Gli eventi di dipendenza acquisiscono i dettagli della chiamata di rete, incluse le intestazioni di richiesta e risposta, il codice dello stato della risposta e la durata della chiamata.

Evento di esempio registrato nella tabella dependencies.

Se anche il servizio connesso è connesso ad Application Insights, un ulteriore evento di log generato dal sistema che cattura la richiesta viene generato nella tabella richieste dell'istanza Application Insights del servizio. Alcuni servizi di Azure, ad esempio Funzioni di Azure, possono essere connessi senza alcuna codifica dal portale di Azure. È possibile connettere l'app canvas o più app e i servizi connessi alla stessa istanza di Application Insights.

Evento di esempio registrato nella tabella requests.

Le chiamate di rete per i connettori supportati possono essere unite ad altri log generati dal sistema nella dimensione "operation_Id". La query di esempio seguente mostra una chiamata di rete effettuata insieme agli eventi di analisi emessi durante una sessione dell'app.

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

Esempio di output per la query di esempio precedente.

Esportare dati in Power BI

Puoi esportare i risultati della query e i dati di Application Insights in Power BI per l'analisi e la presentazione dei dati.

  1. Accedi al portale di Azure e apri la risorsa Application Insights che hai creato in precedenza:

  2. Seleziona Log in Monitoraggio dal riquadro di spostamento a sinistra:

  3. Dalla finestra della query di analisi dei log, seleziona il menu Esporta.

  4. Seleziona l'opzione Esporta in Power BI (query M) per scaricare un file di query Power BI:

    Esporta la query di Power BI.

  5. Apri il file scaricato in un editor di testo e copia la query negli Appunti.

  6. Power BI aperti.

  7. Seleziona il menu Ottieni dati nella barra multifunzione Home e quindi seleziona Query vuota:

    Query vuota di Power BI.

  8. Nella finestra della query seleziona Editor avanzato. Incolla la query nella finestra, seleziona Fatto, quindi seleziona Chiudi e applica:

    Query avanzata di Power BI.

Puoi anche creare grafici e visualizzazioni in Power BI per rappresentare il feedback ricevuto nella tua app, nonché prendere decisioni ed eseguire azioni basate sui dati.

Grafici e visualizzazioni.

Contesto e dimensioni dell'evento di traccia predefinito

Un set di dimensioni predefinite viene aggiunto anche alla proprietà customDimensions per ogni evento di traccia. Queste dimensioni possono essere utilizzate per identificare l'applicazione e le sessioni dell'applicazione in cui si sono verificati gli eventi. Se registri ulteriori dati personalizzati utilizzando la funzione di analisi, questi verranno visualizzati anche nelle dimensioni personalizzate.

Nome dimensione Rappresenta
ms-appId L'ID applicazione dell'app che ha inviato l'evento.
ms-appname Il nome applicazione dell'app che ha inviato l'evento.
ms-appSessionId L'ID sessione dell'applicazione. Questo valore potrebbe non essere popolato in alcuni scenari. Quando disponibile, questo valore sostituisce la dimensione sessionID standard di Application Insights.
ms-tenantID L'identificatore univoco del tenant in cui è pubblicata l'applicazione.
ms-environmentId Il nome dell'ambiente in cui è pubblicata l'applicazione.
userId Un identificatore univoco per l'utente associato alla sessione.
ms-duration Un valore imputato che misura il tempo impiegato da un utente per navigare da una schermata all'altra. Questo valore sovrascrive la dimensione standard della durata di Application Insights PageView.
sessionId Un ID sessione che può essere utilizzato per correlare tutti gli eventi associati a una singola sessione dell'applicazione. Questo valore è sempre presente ed è consigliato per comprendere il conteggio delle sessioni univoche. Questo valore è preso dall'ID sessione del lettore e viene mostrato quando si visualizzano i dettagli della sessione durante la riproduzione dell'app. A volte l'ID sessione potrebbe ottenere un valore predefinito, casuale e univoco generato da Application Insights. Questo valore predefinito non è affidabile e non è correlato ad alcun parametro specifico dell'app.
Durata Un valore imputato che misura il tempo impiegato da un utente per navigare da una schermata all'altra. Questo valore è uguale alla durata riportata dalla dimensione ms-duration.
ms-isTest Indica se la sessione è associata al test runner di Test Studio.
ms-currentScreenName Il nome della pagina da cui sta navigando un utente (presente per gli eventi di navigazione della pagina).
ms-targetScreenName Il nome della pagina a cui sta navigando un utente (presente per gli eventi di navigazione della pagina).

Scenari non supportati

Application Insights non supporta gli scenari seguenti.

  • Gli eventi dei giocatori offline non vengono acquisiti.
  • Gli eventi dell'app per dispositivi mobili (iOS e Android) non vengono acquisiti quando l'app viene sospesa.
  • GCC e cloud non pubblici non sono supportati.

Nota

Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)

Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).