Registrazione personalizzata con traccia

Completato

Oltre alla telemetria che viene inviata automaticamente dal runtime di Power Apps ad Application Insights, è possibile usare la funzione Power Fx Trace() per inviare eventi personalizzati. Dotando l'app di chiamate di traccia, è possibile acquisire eventi importanti e dati associati.

Esempi di scenari in cui è possibile aggiungere chiamate alla funzione Trace() includono:

  • Quando si usa OnStart per registrare i parametri passati all'app al momento dell'avvio

  • Quando gli utenti abilitano o disabilitano le opzioni nell'applicazione

  • Quando si seleziona un pulsante per eseguire un'azione

  • Quando l'utente annulla un'azione

  • Quando si verifica un errore, ad esempio se qualcuno invia un modulo o errori nell'origine dati

  • Registrazione di errori di convalida

  • Registrazione di criteri di ricerca per determinare le ricerche più frequenti

  • Registrazione del feedback in base ai Mi piace o Non mi piace di un utente in un'app

  • Tutto ciò per cui si intende effettuare query in seguito

Oltre a registrare i dati per Application Insights, i dati di traccia sono visibili anche nello strumento Monitoraggio e nei risultati di Power Apps Test Studio.

La sintassi della funzione è la seguente:

Trace(message, trace_severity, custom_record )

Il parametro message è obbligatorio e può essere usato per identificare il motivo della chiamata di trace, ad esempio immettendo Trace("Timesheet Validation Failed").

Facoltativamente, è possibile trasmettere un livello di gravità, come informazione, avviso, errore o critico. Se impiegata per classificare in modo coerente le tracce, la gravità può essere utile per eseguire query ai dati. Ad esempio, si potrebbe ricevere un messaggio e-mail quotidiano con l'elenco di tutti gli errori rilevati.

La funzione Trace() consente inoltre di trasmettere un record di dati con informazioni di contesto. Questo record può avere uno o più campi dati utili per analizzare i dati dell'evento di traccia in un secondo momento. Inoltre, è possibile usare questi dati nelle query di log per ridurre il set di record di traccia che si esamina. Il record inline può essere composto usando le parentesi graffe ({}) che contengono valori di campo denominati. Ad esempio, è possibile migliorare la convalida precedente trasmettendo più informazioni di contesto:

Trace(“Timesheet Validation Failed”,Warning, { hoursWorked:ThisItem.HoursWorked”)

Quando si compongono chiamate alla funzione Trace(), assicurarsi di tenere a mente i seguenti parametri:

  • Evitare di registrare in Application Insights i dati sensibili, come il nome e l'indirizzo e-mail di un cliente, poiché potrebbero verificarsi problemi di conformità.

  • Fare attenzione a dati errati o a una formula che potrebbe causare risultati imprevisti.

  • Evitare di inviare troppi dati inviando solo quanto necessario per analizzare o eseguire query ai dati.

  • Usare nomi di campo coerenti per semplificare l'esecuzione di query nelle chiamate di traccia correlate.

Esecuzione di query alle tracce

È possibile eseguire query ai dati e visualizzare i dati acquisiti da ciascuna chiamata della funzione Trace() eseguendo query al log e usando traces come nome della tabella.

Screenshot della creazione di una query di tracce dai dati del log.

Nei risultati ogni riga avrà come Tipo di elementotraccia. In ogni riga vengono visualizzati il messaggio e il livello di gravità. Se si espande la riga, viene visualizzata una proprietà customDimensions che è possibile espandere ulteriormente per mostrare i campi registrati come dati di contesto quando è stata richiamata la funzione Trace().

Screenshot dei risultati della query con le dimensioni personalizzate evidenziate.

Nell'immagine precedente JobId e JobName erano dati di contesto. Tutti i campi ms- vengono aggiunti automaticamente a ogni traccia. È possibile usare questi dati per creare una query simile al seguente esempio che esegue una query per tutti i record di traccia da uno specifico JobId.

Screenshot delle tracce della query.

È possibile usare ms-appId per trovare tutte le tracce per un'app specifica e ms-appSessionId per trovare tutte le tracce di un utente per la specifica sessione di esecuzione dell'app. Ogni app che registra i dati avrà un unico ms-appId.

L'aggiunta di tracce all'app può fornire una risorsa preziosa per tenere traccia dei problemi. Le tracce sono particolarmente utili perché possono essere usate per acquisire dati per un'app in esecuzione in produzione e che non richiede l'esecuzione dell'app in Power Apps Studio. Aggiungendo in modo proattivo le chiamate della funzione Trace() alla propria applicazione, sarà possibile intervenire immediatamente quando gli utenti segnalano un problema complesso in produzione.