Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verbinden Sie Ihre Canvas-Apps mit Application Insights, einem Feature von Azure Monitor. Application Insights enthält Analysetools, die helfen, Probleme zu diagnostizieren und das Benutzerverhalten in Apps zu verstehen. Nutzen Sie die gesammelten Informationen, um bessere Geschäftsentscheidungen zu treffen und die App-Qualität zu verbessern.
Anforderungen
- Sie brauchen Zugriff auf das Azure-Portal.
- Sie brauchen die Berechtigung für das Erstellen von Azure-Ressourcen.
Anmerkung
Um Telemetrieinformationen anzeigen zu können, muss Ihre Fachkraft für die Mandantenadministration Canvas-App-Erkenntnisse aktivieren. Um sich als Administrationsfachkraft anzumelden, gehen Sie zum Power Platform Admin Center. Wählen Sie Einstellungen>Mandanteneinstellungen>Canvas-App-Erkenntnisse aus. Stellen Sie im Bereich Canvas-App-Erkenntnisse den Umschalter auf Ein und speichern Sie Ihre Änderungen. Weitere Informationen finden Sie unter Mandanteneinstellungen.
Eine Application Insights Ressource erstellen
Senden Sie vom System generierte Protokolle aus einer App, indem Sie eine Application Insights-Ressource zum Speichern von Ereignissen erstellen.
Erfahren Sie, wie Sie eine arbeitsbereichsbasierte Ressource für Application Insights im Azure-Portal erstellen.
Verbindung Ihrer App mit Application Insights
Anmerkung
- Denken Sie beim Angeben einer Verbindungszeichenfolge daran, dass Daten mandantenübergreifend gesendet werden können. Nachverfolgungsereignisse werden an die App Insights-Ressource gesendet, die der Verbindungszeichenfolge entspricht, die Sie für Ihre App festgelegt haben, auch wenn sich die App Insights-Zielinstanz in einem anderen Mandanten als die App befindet.
- Seien Sie vorsichtig, wenn Sie vorhandene MSAPP-Dateien importieren, da Verbindungszeichenfolgen für App Insights vorhanden sein können. Öffnen Sie die App nach dem Import manuell, um zu überprüfen, ob die richtige App Insights-Verbindungszeichenfolge verwendet wird.
Melden Sie sich bei Power Apps an.
Öffnen Sie eine App, um sie zu bearbeiten.
Wählen Sie das App-Objekt aus der linken Navigationsstrukturansicht aus und fügen Sie die Verbindungszeichenfolge aus Ihrer Application Insights-Ressource hinzu.
Speichern und Veröffentlichen Ihrer App.
Abspielen der veröffentlichten App und durchsuchen der verschiedenen Bildschirme.
Wenn Sie die App-Bildschirme durchsuchen, werden automatisch Ereignisse in Application Insights protokolliert. Dazu gehören Nutzungsdetails wie:
- Von wo aus Benutzende auf die App zugreifen
- Welche Geräte Benutzer verwenden
- Die Arten von Browsern, die Benutzer verwenden
Wichtig
Geben Sie die veröffentlichte App wieder, um Ereignisse an Application Insights zu senden. Ereignisse werden nicht an Application Insights gesendet, wenn Sie eine Vorschau der App in Power Apps Studio betrachten.
Ereignisse anzeigen in Application Insights
Melden Sie sich beim Azure-Portal an und öffnen Sie die Application Insights-Ressource, die Sie zuvor erstellt haben.
Wählen Sie im linken Navigationsbereich Benutzende im Abschnitt Nutzung aus.
Anmerkung
Die Ansicht Benutzende zeigt Details zur App-Nutzung an wie:
- Anzahl der Benutzer, die die App angesehen haben
- Anzahl von Benutzersitzungen
- Anzahl der protokollierten Ereignisse
- Betriebssysteme und Browserversionsdetails der Benutzer
- Region und Standort der Benutzer
Weitere Informationen zur Benutzer-, Sitzungs- und Ereignisanalyse in Application Insights.
Wählen Sie eine Benutzersitzung aus, um bestimmte Details anzuzeigen, z. B. die Sitzungsdauer und die besuchten Bildschirme.
Wählen Sie im linken Navigationsbereich Ereignisse im Abschnitt Nutzung aus. Sie können sich eine Zusammenfassung aller Bildschirme anzeigen lassen, die in allen App-Sitzungen angezeigt werden.
Tipp
Entdecken Sie weitere Application Insights-Features wie:
Erstellen Sie benutzerdefinierte Ablaufverfolgungsereignisse
Schreiben Sie benutzerdefinierte Ablaufverfolgungen in Application Insights, um Informationen zu analysieren, die für Ihre App spezifisch sind. Die Trace-Funktion ermöglicht es Ihnen zu sammeln:
- Detaillierte Nutzungsinformationen für Steuerelemente auf den Bildschirmen
- Welche bestimmten Benutzer greifen auf Ihre App zu
- Welche Fehler treten auf
Die Ablaufverfolgung hilft Ihnen bei der Diagnose von Problemen, indem sie eine Spur von Informationen sendet, während Benutzer Ihre App durchsuchen und Aktionen ausführen. Ablaufverfolgungsnachrichten, die an Application Insights gesendet werden, haben einen von drei Schweregraden:
- Information
- Warnung
- Error
Senden Sie eine Ablaufverfolgungsmeldung mit dem entsprechenden Schweregrad je nach Situation. Sie können die Daten abfragen und bestimmte Aktionen basierend auf dem Schweregrad ausführen.
Anmerkung
Wenn Sie personenbezogene Daten protokollieren, beachten Sie bitte Ihre Pflichten im Hinblick auf verschiedene Datenschutzgesetze und -vorschriften. Weitere Informationen finden Sie im Microsoft Trust Center und dem Service Trust-Portal.
Erstellen Sie eine Komponente in Ihrer App, um Feedback zu jedem Bildschirm zu sammeln und Ereignisse in Application Insights zu protokollieren.
Melden Sie sich bei Power Apps an.
Wählen Sie im linken Navigationsbereich die Option Apps aus. Wählen Sie aus der Liste der Apps die Kudos-App und dann Bearbeiten aus.
Anmerkung
Sie können auch eine neue App erstellen oder stattdessen eine bestehende App bearbeiten.
Wählen Sie Komponenten in der Strukturansicht aus:
Wählen Sie Neue Komponente aus, ändern Sie dann die Breite auf 200 und die Höhe auf 75:
Wählen Sie Einfügen aus dem Menü und wählen Sie dann Symbole hinzufügen Emoji .- Stirnrunzeln und Emoji – Lächeln:
Wählen Sie Neue benutzerdefinierte Eigenschaft, um eine benutzerdefinierte Eigenschaft zu erstellen:
Geben Sie die Eigenschaft Name und Anzeigename ein (zum Beispiel FeedbackSceen).
Geben Sie eine Eigenschaft Beschreibung ein.
Wählen Sie Art der Eigenschaft als Eingang und Datentyp als Bildschirm:
Anmerkung
Eine Eingabeeigenschaft erlaubt Ihnen, den Anzeigenahmen und seine Komponente zu erfassen und diese Informationen in Application Insights zu protokollieren.
Wählen Sie die Komponente in der Strukturansicht aus, wählen Sie Mehr Aktionen (...) und Umbenennen aus, um der Komponente einen aussagekräftigen Namen wie FeedbackComponente zu geben.
Wählen Sie die Symbole, Mehr Aktionen (...) und dann Umbenennen aus, um die Symbole mit aussagekräftigen Namen umzubenennen, wie FrownIcon und SmileIcon.
Wählen Sie FrownIcon, die Eigenschaft OnSelect aus und geben Sie den folgenden Ausdruck in die Formelleiste ein:
Trace( "App Feedback", TraceSeverity.Information, { UserName: User().FullName, UserEmail: User().Email, Screen: FeedbackComponent.FeedbackScreen.Name, FeedbackValue: "-1" } ); Notify("Thanks for your feedback!");
Anmerkung
Die Formel sendet Benutzername, Benutzer-E-Mail, Bildschirm und Feedback (mit dem Wert -1) an Application Insights.
Wählen Sie SmileIcon, wählen Sie die Eigenschaft OnSelect und geben Sie dann den folgenden Ausdruck in die Formelleiste ein:
Trace( "App Feedback", TraceSeverity.Information, { UserName: User().FullName, UserEmail: User().Email, Screen: FeedbackComponent.FeedbackScreen.Name, FeebackValue: "1" } ); Notify("Thanks for your feedback!");
Fügen Sie die Komponente einem der Bildschirme in Ihrer App hinzu:
Wählen Sie dann Speichern und Veröffentlichen, um Ihre App zu speichern und zu veröffentlichen.
Spielen Sie die veröffentlichte App ab und senden Sie ein Lächeln und ein Stirnrunzeln von den Bildschirmen aus.
Wichtig
Sie müssen die veröffentlichte App abspielen, um Ereignisse an Application Insights zu senden. Ereignisse werden nicht an Application Insights gesendet, wenn Sie die App in Power Apps Studio Vorschau betrachten.
Benutzerdefinierte Daten in Application Insights analysieren
Sie können nun mit der Analyse der von Ihnen gesendeten Daten beginnen mit der Nachverfolgen Funktion von Ihrer App in Application Insights.
Melden Sie sich beim Azure-Portal an und öffnen Sie die Application Insights-Ressource, die Sie zuvor erstellt haben.
Wählen Sie Protokolle unter Überwachung im linken Navigationsbereich aus.
Geben Sie die folgende Abfrage ein und wählen Sie Ausführen aus, um das Feedback zu Ihrer App anzuzeigen:
traces | where message == "App Feedback" | order by timestamp
Wählen Sie eine Zeile in den Ergebnissen aus und erweitern Sie die das customDimensions Feld.
Die Werte für Bildschirm, Benutzername, Benutzer-E-Mail, und FeedbackValue für das OnSelect-Ereignis des Lächeln- oder Stirnrunzelnsymbols in Ihrer Komponente werden aufgezeichnet. Es werden auch Werte für jedes Ereignis aufgezeichnet, das an Application Insights gesendet wird, wie appId, appName und appSessionId.
Verwenden Sie folgende Beispielabfrage, um die Eigenschaften der benutzerdefinierten JSON-Dimensionen zu erweitern und die Spalten in der Ergebnisansicht zu projizieren.
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
Tipp
Protokollabfragen sind leistungsstark. Verwenden Sie sie, um mehrere Tabellen zu verknüpfen, große Datenmengen zu aggregieren und komplexe Vorgänge auszuführen. Weitere Informationen zu Protokollabfragen.
App-Lebenszyklusdaten in Application Insights analysieren
Das Sitzungszusammenfassungsereignis wird einmal pro Sitzung protokolliert und enthält Informationen über den Erfolg beim Öffnen der App, optimale und nicht optimale Sitzungen beim Öffnen der App sowie Leistungsmetriken zum Öffnen der App.
Grenzwerte
Diese Ereignisse gelten für Canvas-Apps, die in einem Webbrowser ausgeführt werden. Sie sind für Apps, die auf mobilen Power Apps ausgeführt werden, nicht verfügbar. Ihre Werte sind möglicherweise nicht immer verfügbar oder für benutzerdefinierte Seiten nicht immer genau.
Im Folgenden finden Sie eine Beispielabfrage, die zeigt, wie Sie auf das Sitzungszusammenfassungsereignis und alle verfügbaren Felder zugreifen können:
customEvents
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary"
//
| extend cd = parse_json(customDimensions)
//
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"]))
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"])
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"])
| extend appLoadResult = tostring(sessionSummary["appLoadResult"])
| extend appLoadNonOptimalReason =
tostring(sessionSummary["appLoadNonOptimalReason"])
//
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"])
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"])
//
| project
timestamp,
session_Id,
successfulAppLaunch,
unsuccessfulReason,
appLoadResult,
appLoadNonOptimalReason,
timeToAppInteractive,
timeToAppFullLoad
| limit 5
Die folgenden Felder helfen dabei, den Erfolg des Öffnens von Apps und die Latenz von Leistungsmarkern zu messen, die an die Endbenutzererfahrung gebunden sind.
Feld | Beschreibung |
---|---|
successfulAppLaunch | Boolescher Wert, der angibt, ob die App in der Sitzung erfolgreich gestartet wurde |
unsuccessfulReason | Wenn die Sitzung die App nicht starten konnte, gibt dies den Grund/Fehler an. Dieses Feld ist eine leere Zeichenfolge, wenn die Sitzung erfolgreich war. |
appLoadResult | Gibt an, ob die Sitzung optimal war oder nicht. Mögliche Werte: optimal, andere |
appLoadNonOptimalReason | Wenn die Sitzung nicht optimal war, gibt dies den Grund an. Mögliche Werte: Interaktion erforderlich, gedrosselt, vom Bildschirm weg navigiert, andere |
timeToAppInteractive | Dauer in Millisekunden, die die App-Sitzung benötigt, um einen interaktiven Zustand zu erreichen. In diesem Zustand können Benutzer mit dem ersten Bildschirm interagieren, aber die Daten werden möglicherweise nicht vollständig geladen. |
timeToAppFullLoad | Dauer in Millisekunden, bis die App-Sitzung einen vollständig geladenen Zustand erreicht, in dem alle Datenanforderungen für den ersten Bildschirm vollständig geladen wurden. |
Beispielabfragen
App-Öffnungserfolgsquoten
Diese Abfrage zeigt die tägliche Erfolgsquote beim Öffnen der App an. Dies kann verwendet werden, um Spitzen oder Trends bei Problemen zu bewerten, die möglicherweise bei Benutzern auftreten
customEvents
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary"
| extend cd = parse_json(customDimensions)
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"]))
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"])
| summarize
sessions_total = dcount(session_Id),
sessions_success = dcountif(session_Id, successfulAppLaunch == true)
by bin(timestamp, 1d)
| extend successRate =
100.0 * (todouble(sessions_success) / todouble(sessions_total))
| project timestamp, successRate
| render timechart
Anzahl der fehlgeschlagenen Sitzungen nach Grund
Diese Abfrage zeigt die Anzahl der nicht erfolgreichen Sitzungen nach Grund/Fehler an. Dies kann verwendet werden, um Fehler beim Öffnen von Apps zu debuggen oder Trends bei Problemen zu bewerten, die möglicherweise bei Benutzern auftreten.
customEvents
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary"
| extend cd = parse_json(customDimensions)
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"]))
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"])
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"])
| where successfulAppLaunch == false
| summarize
count()
by unsuccessfulReason, bin(timestamp, 1d)
| render timechart
App-Öffnungsleistung
Diese Abfrage zeigt Leistungsmetriken für das Öffnen von Apps nach Tagen an. Dies kann verwendet werden, um Leistungstrends im Laufe der Zeit oder nach dem Vornehmen von Änderungen zu bewerten. Wir empfehlen:
- Verwenden des 75. Perzentils der Felder timeToAppInteractive und timeToAppFullLoad, um Rauschen durch Ausreißer zu vermeiden
- Filtern nach nur optimalen Sitzungen, um Rauschen in den Daten zu vermeiden, das durch erwartete Fälle verursacht wird, z. B. Sitzungen mit Benutzerinteraktion, Sitzungen, in denen die App in einer Hintergrundregisterkarte geladen wurde usw.
customEvents
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary"
| extend cd = parse_json(customDimensions)
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"]))
| extend appLoadResult = tostring(sessionSummary["appLoadResult"])
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"])
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"])
| where appLoadResult == "optimal"
| summarize
percentile(timeToAppInteractive, 75),
percentile(timeToAppFullLoad, 75)
by bin(timestamp, 1d)
| render timechart
App-Ladestatus bei HTTP-Aufrufen
Es gibt einen neuen Anforderungsheader x-ms-App-load-state, der angibt, ob ein HTTP-Aufruf zum App-Start beigetragen hat. Dies kann insbesondere verwendet werden, um zu bestimmen, welche HTTP-Aufrufe sich auf die oben genannte timeToAppFullLoad ausgewirkt haben.
Der Header kann einer von zwei Werten sein:
Wert | Beschreibung |
---|---|
TTFL | Gibt an, dass die Anforderung zu timeToAppFullLoad beigetragen hat |
PostTTFL | Gibt an, dass die Anforderung nicht zu timeToAppFullLoad beigetragen hat |
Hier ist eine Beispielabfrage, die zeigt, wie Sie auf den Headerwert zugreifen und ihn in die appLoadState-Spalte projizieren:
dependencies
| extend cd = parse_json(customDimensions)
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"]))
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"])
| project timestamp, session_Id, appLoadState, name, duration
| limit 5
Anzahl der HTTP-Aufrufe, die zum vollständigen Laden beitragen
Diese Abfrage zeigt die durchschnittliche Anzahl der HTTP-Aufrufe pro Tag an, die zu timeToAppFullLoad beitragen. Dies kann verwendet werden, um die Anzahl der Aufrufe der App beim Start auszuwerten, die möglicherweise zu einer schlechten Leistung beitragen.
dependencies
| extend cd = parse_json(customDimensions)
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"]))
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"])
| where appLoadState == "TTFL"
| summarize httpCalls = count() by session_Id, bin(timestamp, 1d)
| summarize avg(httpCalls) by timestamp
| render timechart
Dauer der HTTP-Aufrufe, die zum vollständigen Laden beitragen
Diese Abfrage zeigt die Gesamtdauer der HTTP-Aufrufe, die zu timeToAppFullLoad beitragen, pro Tag an. Dies kann verwendet werden, um die Gesamtauswirkungen von HTTP-Aufrufen auf die Leistung des App-Starts zu bewerten.
dependencies
| extend cd = parse_json(customDimensions)
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"]))
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"])
| where appLoadState == "TTFL"
| summarize httpCallDuration = sum(duration) by session_Id, bin(timestamp, 1d)
| summarize percentile(httpCallDuration, 80) by timestamp
| render timechart
Dauer der HTTP-Aufrufe, die zum vollständigen Ladevorgang nach URL beitragen
Ähnlich wie oben zeigt diese Abfrage die Anzahl und Dauer der HTTP-Aufrufe an, die zur timeToAppFullLoad-URL beitragen. Dies kann verwendet werden, um bestimmte langsame HTTP-Aufrufe zu identifizieren, die sich auf die Leistung des App-Starts auswirken.
dependencies
| extend cd = parse_json(customDimensions)
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"]))
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"])
| where appLoadState == "TTFL"
| summarize
count(), percentile(duration, 80) by name
Nicht behandelte Fehler überwachen (experimentell)
[Dieser Abschnitt enthält eine Vorabversionsdokumentation und kann sich ändern.]
Wichtig
- Dies ist eine Funktion, die in Prüfung ist.
- Die experimentellen Funktionen sind nicht für die Produktion vorgesehen und weisen möglicherweise eine eingeschränkte Funktionalität auf. Diese Funktionen stehen vor dem offiziellen Release zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.
Sie können nicht immer jeden Fehler vorhersehen oder planen, der während der Ausführung Ihrer App auftreten kann. Unbehandelte Power Fx-Formelfehler werden den Benutzern als Bannermeldungen gemeldet. Sie können auch an Application Insights gemeldet werden, um ihre Häufigkeit und ihren Schweregrad anzuzeigen, ohne sich darauf verlassen zu müssen, dass die Benutzenden Ihrer App Probleme melden. Sie können auch Echtzeitwarnungen einrichten, wenn Laufzeitfehler auftreten, um proaktiver vorzugehen.
Fehlerübergabe an Application Insights aktivieren
Aktivieren Sie die Einstellung, mit der Power Apps unbehandelte Laufzeitfehler an Azure Application Insights übergeben kann.
Warnung
Wenn Sie die Einstellung Fehler an Azure Application Insights übergeben aktivieren, können zusätzliche Kosten für das Speichern von Application Insights-Protokollen anfallen.
- Öffnen Sie die Canvas-App zur Bearbeitung.
- Wählen Sie Einstellungen>Updates>Experimentell aus und aktivieren Sie Fehler an Azure Application Insights übergeben.
- Speichern und veröffentlichen Sie dann Ihre App.
Fehlerereignisse in Application Insights
Unbehandelte Power Fx-Fehler, die zur App-Laufzeit auftreten, werden in der Tabelle Ablaufverfolgung gemeldet. Nicht behandelte Fehler können durch die Ereignismeldung „Nicht behandelter Fehler“ identifiziert und von anderen Fehlerereignissen unterschieden werden. Die „severityLevel“-Dimension dieser Ereignisse ist 3 (TraceSeverity.Error).
Detaillierte Fehlermeldungen finden Sie in der Dimension „Fehler“ der Eigenschaft customDimension. In Situationen, in denen während desselben Vorgangs mehrere Fehler aufgetreten sind, werden die Fehler in der Dimension „Fehler“ eines einzelnen Ablaufverfolgungsereignisses konsolidiert. Die Fehlermeldungen stimmen mit denen überein, die während einer Livedebugsitzung im Monitor gemeldet werden.
Diese Beispielabfrage identifiziert nicht behandelte Fehler und erweitert alle Fehlermeldungen im Ablaufverfolgungsereignis:
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
Korrelationsverfolgung (experimentell)
[Dieser Abschnitt enthält eine Vorabversionsdokumentation und kann sich ändern.]
Wichtig
- Dies ist eine Funktion, die in Prüfung ist.
- Die experimentellen Funktionen sind nicht für die Produktion vorgesehen und weisen möglicherweise eine eingeschränkte Funktionalität auf. Diese Funktionen stehen vor dem offiziellen Release zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.
Das Herstellen einer Verbindung zu externen Daten und Diensten ist für die meisten Apps unerlässlich. Die Korrelationsablaufverfolgung generiert und gibt Kontextinformationen weiter, um vom System generierte Protokolle vorbehaltlich bestimmter Einschränkungen über eine Canvas-App und ihre Verbindungen hinweg zu verknüpfen. Ihre App kann z. B. einen benutzerdefinierten Konnektor aufrufen, der dann eine Azure-Funktion oder eine andere REST-API aufruft. Mithilfe der Korrelationsverfolgung können Sie in der App vorgenommene Aktionen mit den zugrunde liegenden API-Aufrufen über Ebenen hinweg korrelieren. Dies ist für die Problembehandlung nützlich.
Die Canvas-App-Korrelationsablaufverfolgung implementiert die Kontextablaufverfolgung und folgt der W3C-Spezifikation.
Korrelationsablaufverfolgung aktivieren
Warnung
Wenn Sie diese Einstellung aktivieren, können zusätzliche Kosten im Zusammenhang mit dem Speichern von Application Insights-Protokollen anfallen.
- Um die Korrelationsablaufverfolgung zu aktivieren, öffnen Sie Ihre Canvas-App zur Bearbeitung.
- Wählen Sie Einstellungen>Updates>Experimentell> aus und aktivieren Sie Azure Application Insights-Korrelationsablaufverfolgung.
- Sichern und veröffentlichen Sie die App.
Einschränkungen
- Die Korrelationsablaufverfolgung funktioniert nur mit benutzerdefinierten Konnektoren. Andere Connector-Typen werden nicht unterstützt.
- HTTP-Anforderungen werden in Application Insights nur erfasst, wenn der verbundene Dienst auch mit Application Insights verbunden ist.
Korrelationsablaufverfolgung verwenden
Wenn die Korrelationsverfolgung aktiviert ist, wird ein neues, vom System generiertes Protokollereignis in der Tabelle Abhängigkeiten der Application Insights-Instanz der Canvas-App hinzugefügt. Dieses Ereignis wird zu dem Zeitpunkt aufgezeichnet, zu dem eine Antwort von einem Netzwerkaufruf empfangen wird. Abhängigkeitsereignisse erfassen Details des Netzwerkaufrufs, einschließlich der Anforderungs- und Antwortheader, des Antwortstatuscodes und der Dauer des Anrufs.
Wenn der verbundene Dienst auch mit Application Insights verbunden ist, wird ein zusätzliches vom System generiertes Protokollereignis, das die Anforderung erfasst, in der Tabelle Anforderungen der Application Insights-Instanz des Dienstes generiert. Einige Azure-Dienste, wie z. B. Azure Functions, können ohne Programmieraufwand über das Azure-Portal verbunden werden. Es können sowohl Canvas-Apps als auch mehrere Apps und verbundene Dienste mit derselben Application Insights-Instanz verbunden werden.
Verknüpfen Sie Netzwerkaufrufe für unterstützte Konnektoren mit anderen vom System generierten Protokollen in der Dimension „operation_ID“. Die folgende Abfrage zeigt einen Netzwerkaufruf zusammen mit Ablaufverfolgungsereignissen, die während einer App-Sitzung ausgegeben werden.
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
Exportieren von Daten nach Power BI
Sie können Ihre exportieren Application Insights Daten und Abfrageergebnisse an Power BI zur Analyse und Datenpräsentation senden.
Melden Sie sich beim Azure-Portal an und öffnen Sie die Application Insights Ressource, die Sie zuvor eingerichtet haben.
Wählen Sie Protokolle unter Überwachung im linken Navigationsbereich aus.
Wählen Sie im Abfragefenster für die Protokollanalyse das Menü Exportieren aus.
Wählen Sie Exportieren nach Power BI (M-Abfrage) aus, um eine Power BI-Abfragedatei herunterzuladen.
Öffnen Sie die heruntergeladene Datei in einem Texteditor und kopieren Sie die Abfrage in die Zwischenablage.
Öffnen Sie Power BI.
Wählen Sie Daten abrufen im Menüband Start und dann Leere Abfrage aus.
Wählen Sie im Abfragefenster Erweiterter Editor aus, fügen Sie die Abfrage in das Fenster ein, wählen Sie Fertig und dann Schließen und anwenden aus.
Erstellen Sie Diagramme und Visualisierungen in Power BI, um das über Ihre App erhaltene Feedback darzustellen und datengesteuerte Entscheidungen zu treffen.
Standardkontext und -dimensionen des nachverfolgten Ereignisses
Standarddimensionen werden zur Eigenschaft customDimensions bei jedem nachverfolgten Ereignis hinzugefügt. Diese Dimensionen identifizieren die Anwendung und die Anwendungssitzungen, in denen die Ereignisse auftreten. Wenn Sie zusätzliche benutzerdefinierte Daten mithilfe der Ablaufverfolgungsfunktion protokollieren, erscheint diese auch in den benutzerdefinierten Dimensionen.
Dimensionsname | Repräsentiert |
---|---|
ms-appId | Die Anwendungs-ID der App, die das Ereignis gesendet hat. |
ms-appname | Der Anwendungsname der App, die das Ereignis gesendet hat. |
ms-appSessionId | Die Anwendungssitzungs-ID. Dieser Wert wird in einigen Szenarien möglicherweise nicht eingetragen. Wenn verfügbar, überschreibt dieser Wert die standardmäßige sessionID-Dimension von Application Insights. |
ms-tenantID | Die eindeutige Kennung des Mandanten, in dem die Anwendung veröffentlicht wird. |
ms-environmentId | Der Name der Umgebung, in dem die Anwendung veröffentlicht wird. |
userId | Ein eindeutiger Bezeichner für den Benutzer, der der Sitzung zugeordnet ist. |
ms-duration | Ein zugeschriebener Wert, der die Zeit misst, die ein Benutzer benötigt, um von einem Bildschirm zum anderen zu navigieren. Dieser Wert überschreibt die standardmäßige PageView-Dauer-Dimension von Application Insights. |
sessionId | Eine Sitzungs-ID, die verwendet werden kann, um alle Ereignisse zu korrelieren, die einer einzelnen Anwendungssitzung zugeordnet sind. Dieser Wert ist immer vorhanden und wird empfohlen, um die Anzahl der eindeutigen Sitzungen herauszufinden. Dieser Wert wird der Sitzungs-ID des Spielers entnommen und beim Anzeigen der Sitzungsdetails beim Spielen der App angezeigt. Die Sitzungs-ID kann manchmal ein standardmäßiger, zufälliger, eindeutiger von Application Insights generierter Wert sein. Dieser Standardwert ist nicht zuverlässig und korreliert nicht mit App-spezifischen Parametern. |
Dauer | Ein zugeschriebener Wert, der die Zeit misst, die ein Benutzer benötigt, um von einem Bildschirm zum anderen zu navigieren. Dieser Wert stimmt mit der Dauer überein, die von der ms-duration-Dimension gemeldet wird. |
ms-isTest | Gibt an, ob die Sitzung mit dem Test Runner von Test Studio verknüpft ist. |
ms-currentScreenName | Der Name der Seite, von der aus der Benutzende navigiert (für Seitennavigationsereignisse verfügbar). |
ms-targetScreenName | Der Name der Seite, zu der ein Benutzer navigiert (vorhanden für Seitennavigationsereignisse). |
Nicht unterstützte Szenarien
Application Insights unterstützt diese Szenarien nicht.
- Offline-Spielerereignisse werden nicht aufgezeichnet.
- Ereignisse von mobilen Apps (iOS und Android) werden nicht aufgezeichnet, wenn die App angehalten wird.