Benutzerdefinierte Protokollierung mit Ablaufverfolgung

Abgeschlossen

Neben der Telemetrie, die automatisch von Power Apps-Runtime zu Application Insights gesendet wird, können Sie die Power Fx Trace()-Funktion verwenden, um angepasste Ereignisse zu senden. Indem Sie Ihre App mit Ablaufverfolgungs-Aufrufen instrumentieren, können Sie wichtige Ereignisse und zugehörige Daten erfassen.

Im Folgenden finden Sie Beispiele, wann Sie Trace()-Funktionsaufrufe hinzufügen können:

  • OnStart verwenden, um die Parameter zu protokollieren, die an Ihre App beim Start übergeben werden

  • Wenn Benutzer Optionen in Ihrer App aktivieren oder deaktivieren

  • Wenn eine Schaltfläche zum Ausführen einer Aktion ausgewählt wird

  • Wenn der Benutzer eine Aktion abbricht

  • Wenn ein Fehler auftritt, zum Beispiel wenn jemand ein Formular oder Datenquellenfehler übermittelt

  • Überprüfungsfehler protokollieren

  • Suchkriterien protokollieren, damit Sie die häufig durchgeführten Suchanfragen ermitteln können

  • Feedback basierend auf den Vorlieben oder Abneigungen eines Benutzers in einer App protokollieren

  • Alles, was Sie später abfragen möchten

Neben der Protokollierung der Daten für Application Insights, sind Ablaufverfolgungsdaten auch im Monitor-Tool und Power Apps Studio-Ergebnisse sichtbar.

Die Syntax für die Funktion lautet folgendermaßen:

Trace(message, trace_severity, custom_record )

Der Nachrichtenparameter ist erforderlich, und Sie sollten ihn verwenden, um zu erkennen, warum Sie die Ablaufverfolgung aufgerufen haben, wie durch Eingabe von Trace("Timesheet Validation Failed").

Optional können Sie einen Schweregrad für Informationen, Warnungen, Fehler oder kritische Vorgänge übergeben. Bei der konsistenten Kategorisierung Ihrer Ablaufverfolgungen kann der Schweregrad beim Abfragen der Daten nützlich sein. Sie können zum Beispiel eine tägliche E-Mail mit einer Liste aller erfassten Fehler erhalten.

Mit der Trace()-Funktion können Sie auch einen Datensatz mit Kontextinformationen übergeben. Dieser Datensatz kann ein oder mehrere Datenfelder enthalten, die bei der späteren Analyse der Ablaufverfolgungsereignisdaten nützlich sind. Darüber hinaus können Sie diese Daten in den Protokollabfragen verwenden, um die Menge der von Ihnen überprüften Ablaufverfolgungs-Datensätze zu reduzieren. Sie können den Inline-Datensatz mit geschweiften Klammern ({}) zusammenstellen, die benannte Feldwerte enthalten. Sie können zum Beispiel Ihre vorherige Überprüfung verbessern, indem Sie weitere Kontextinformationen übergeben:

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

Beachten Sie beim Verfassen von Aufrufen der Trace()-Funktion die folgenden Parameter:

  • Vermeiden Sie die Aufzeichnung sensibler Daten in Application Insights, die zu Compliance-Problemen führen, wie z. B. der Name und die E-Mail-Adresse eines Kunden.

  • Achten Sie auf fehlerhafte Daten oder eine Formel, die zu unerwarteten Ergebnissen führen kann.

  • Vermeiden Sie das Senden zu vieler Daten. Übermitteln Sie nur das, was Sie benötigen, um die Daten zu analysieren oder abzufragen.

  • Nutzen Sie konsistente Feldnamen, um Abfragen bei verwandten Ablaufverfolgungs-Aufrufen zu vereinfachen.

Ablaufverfolgungen abfragen

Sie können die von jedem Aufruf der Trace()-Funktion erfassten Daten abfragen und anzeigen, indem Sie das Protokoll abfragen und Ablaufverfolgungen als Tabellenname verwenden.

Screenshot des Erstellens einer Abfrage von Ablaufverfolgungen aus den Protokolldaten

In den Ergebnissen verfügt jede Zeile über einen Elementtyp von Ablaufverfolgung. In jeder Zeile werden die Nachricht und Schweregrad angezeigt. Wenn Sie die Zeile erweitern, wird eine Eigenschaft customDimensions angezeigt, die Sie weiter erweitern können, um die Felder anzuzeigen, die Sie beim Aufrufen der Trace()-Funktion als Kontextdaten protokolliert haben.

Screenshot der Abfrageergebnisse mit hervorgehobenen angepassten Dimensionen

In der vorherigen Abbildung waren JobId und JobName Kontextdaten. Alle ms- Felder werden jeder Ablaufverfolgung automatisch hinzugefügt. Sie können diese Daten verwenden, um eine Abfrage ähnlich dem folgenden Beispiel zu erstellen, die alle Ablaufverfolgungs-Datensätze von einer bestimmten JobId abfragt.

Screenshot der Abfrage-Ablaufverfolgungen

Sie können ms-appId verwenden, um alle Spuren für eine bestimmte App zu finden, und ms-appSessionId, um alle Spuren für einen Benutzer für diese Sitzung zu finden, in der die App ausgeführt wird. Jede App, die Daten protokolliert, verfügt über eine eindeutige ms-appId.

Ihrer App Ablaufverfolgungen hinzuzufügen, kann für Sie eine wertvolle Ressource zur Nachverfolgung von Problemen sein. Ablaufverfolgungen sind besonders wertvoll, da Sie sie verwenden können, um Daten für eine App zu erfassen, die in der Produktion ausgeführt wird und die nicht erfordert, dass Sie die App in Power Apps Studio ausführen. Indem Sie Aufrufe der Trace()-Funktion proaktiv zu Ihrer Anwendung hinzufügen, sind Sie bereit, wenn Benutzer ein schwerwiegendes Problem in der Produktion melden.