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.
Azure Application Insights ist ein Telemetrie- und Überwachungsdienst, mit dem Sie detaillierte Telemetriedaten aus Ihren Anwendungen sammeln und analysieren können. Wenn Sie sie in Power Apps Code-Apps integrieren, können Sie Metriken wie Sitzungslastleistung und Netzwerkanforderungszusammenfassungen erfassen. Diese Integration bietet Ihnen tiefere Einblicke in das Verhalten Ihrer App unter realen Bedingungen. Weitere Informationen finden Sie unter Application Insights OpenTelemetry Übersicht zur Beobachtbarkeit.
Hinweis
In diesem Artikel wird ein Beispiel zum Initialisieren und Konfigurieren der Telemetrie für Ihre App gezeigt. Sie können demselben Muster folgen, um jedes Überwachungstool zu integrieren, nicht nur Application Insights.
Azure Application Insights ergänzt Power Platform Monitor durch die Bereitstellung präziser Protokolle und benutzerdefinierter Ereignisse. Sie erfasst jedoch nur Telemetrie, nachdem die App erfolgreich geladen wurde. Startfehler – einschließlich der Probleme, die durch blockierte Dateien oder fehlgeschlagene Initialisierung verursacht werden – werden hier nicht angezeigt und erscheinen ausschließlich im Monitor.
Voraussetzungen
- Ein Azure-Abonnement.
- Eine Application Insights-Ressource, die im Azure portal erstellt wurde.
- Der Connection String oder Instrumentierungsschlüssel aus Ihrer App Insights-Ressource.
Steps
Führen Sie die folgenden Schritte aus, um Application Insights bereitzustellen, installieren Sie die clientbibliothek Power Apps für Code-Apps, verbinden Sie Telemetrie in Ihrer Power Apps-Code-App, und überprüfen Sie Daten in Azure. Dieser kurze Leitfaden führt Sie durch die End-to-End-Einrichtung, damit Sie schnell mit der Erfassung von Leistungs- und Netzwerkmetriken beginnen können.
Eine Application Insights Ressource erstellen
- Melden Sie sich beim Azure portal an.
- Wechseln Sie zu Application Insights , und erstellen Sie eine neue Ressource.
- Kopieren Sie den Connection String oder Instrumentierungsschlüssel aus der Ressourcenübersicht.
Installieren des Application Insights SDK
Fügen Sie das npm-Paket zu Ihrem Code-App-Projekt hinzu.
npm install @microsoft/applicationinsights-webInitialisieren von Application Insights
Fügen Sie die Logik zum Initialisieren von Application Insights hinzu:
import { ApplicationInsights } from '@microsoft/applicationinsights-web'; const initializeAppInsights = () => { const appInsights = new ApplicationInsights({ config: { connectionString: 'InstrumentationKey=<YOUR_KEY>;IngestionEndpoint=<YOUR_ENDPOINT>' } }); appInsights.loadAppInsights(); appInsights.trackPageView(); // Optional: Tracks page view return appInsights; };Hinweis
Umgebungsvariablen werden für Code-Apps noch nicht unterstützt. Zum Verwalten von Schlüsseln pro Umgebung speichern Sie Werte in Dataverse (z. B. eine Einstellungstabelle), oder verwenden Sie getContext(), um die Umgebung zu erkennen und die entsprechenden connection string aus App-Konstanten auszuwählen.
Konfigurieren des Loggers
Stellen Sie einen Logger bereit, damit die Plattform Sitzungs- und Netzwerkmetriken an Ihr Überwachungssystem weiterleiten kann. Die Plattform ruft die
logMetricFunktion mit Metriken wiesessionLoadSummaryundnetworkLoadSummary. Sie sollten diese Funktion nur einmal aufrufen.import { setConfig } from '@microsoft/power-apps/app' import type { IConfig } from '@microsoft/power-apps/app' setConfig({ logger: { logMetric: (value: Metric) => { appInsights.trackEvent( { name: value.type, }, value.data ); } } });Weitere Anleitungen
logMetrictype: Definieren Sie es als(value: Metric) => voidfür Klarheit.Loggerschnittstelle:
interface ILogger { logMetric?: (value: Metric) => void; }
Sie können
ILoggervon: @microsoft/power-apps.import type { ILogger } from '@microsoft/power-apps/telemetry'Hinweis
Dies ist nur ein Beispiel. Sie müssen
logMetricimplementieren, damit Metriken an Ihr bevorzugtes Überwachungstool gesendet werden und nicht unbedingt an App Insights. Die Plattform liefert einfach metrische Nutzlasten. Ihre Implementierung bestimmt, wie sie behandelt werden.Richtlinie für Inhaltssicherheit (CSP) konfigurieren
Wenn die Inhaltssicherheitsrichtlinie (Content Security Policy, CSP) in Ihrer Umgebung aktiviert ist, wird das Senden von Telemetrieereignissen an Application Insights möglicherweise blockiert. Sie müssen die App Insights-Endpunkte zu den CSP-Einstellungen Ihrer Umgebung hinzufügen.
Identifizieren der erforderlichen Quellen
Öffnen Sie Ihre App, wenn Application Insights konfiguriert ist.
Öffnen Sie den Browser DevTools, indem Sie eine der folgenden Aktionen ausführen:
- F12 drücken
- Drücken Sie STRG+UMSCHALT+I
- Klicken Sie mit der rechten Maustaste auf die App, und wählen Sie "Prüfen" aus.
Gehen Sie zur Registerkarte "Konsole".
Löschen Sie die Konsole, und wählen Sie "Fehler" nur aus der Dropdownliste aus. Dieser Schritt ist nicht erforderlich, erleichtert aber die Identifizierung der relevanten Fehler.
Suchen Sie nach Fehlern mit der Nachricht:
Connecting to 'https:...' violates the following Content Security Policy directive.Beachten Sie die URLs, die in diesen Fehlermeldungen angezeigt werden. Diese URLs sind die Quellen, die Sie ihrer CSP-Konfiguration hinzufügen müssen.
Hinzufügen von Quellen zu CSP-Einstellungen
Navigieren Sie zum Power Platform Admin Center.
Befolgen Sie die Anweisungen unter "Inhaltssicherheitsrichtlinie konfigurieren ", um die quellen hinzuzufügen, die Sie in den vorherigen Schritten zur Liste
connect-srczugelassener Elemente angegeben haben. Sehen Sie sich das Beispiel im folgenden Abschnitt an.
Warten Sie, bis die Einstellungen angewendet werden. CSP-Änderungen können mehrere Minuten dauern, bis sie verteilt werden.
Tipp
Nachdem Sie die CSP-Einstellungen aktualisiert haben, aktualisieren Sie Ihre App, und überprüfen Sie erneut die Konsole, um zu überprüfen, ob die CSP-Verletzungen behoben sind und telemetrie erfolgreich gesendet wird.
Anzeigen von Protokollen in Azure portal
- Öffnen Sie die Application Insights-Ressource.
- Wechseln Sie zu Überwachungsprotokollen>.
- Fragen Sie die
customEventsTabelle ab, um Sitzungszusammenfassungen und Netzwerkanforderungen anzuzeigen.
Die Power Apps Clientbibliothek für Code-Apps bietet derzeit zwei integrierte Metriktypen:
type SessionLoadSummaryMetricData = { successfulAppLaunch: boolean; appLoadResult: 'optimal' | 'other'; appLoadNonOptimalReason: 'interactionRequired' | 'throttled' | 'screenNavigatedAway' | 'other'; timeToAppInteractive: number; } type NetworkRequestMetricData = { url: string; method: string; duration: number; statusCode: number; responseSize: number; }(Optional) Protokollieren benutzerdefinierter Ereignisse
Sie können mehr Telemetrie (über Standardmetriken hinaus) protokollieren, indem Sie die eigenen APIs Ihres Überwachungstools an den gewünschten Punkten in Ihrer App aufrufen. Weitere erweiterte Szenarien finden Sie in der offiziellen Dokumentation zu Application Insights. Vermeiden Sie die Protokollierung vertraulicher oder unnötiger Daten, und befolgen Sie immer die Compliancerichtlinien Ihrer Organisation.
Beispielabfragen
Um Ihnen den Einstieg in die Analyse Ihrer Telemetriedaten zu erleichtern, verwenden die folgenden Beispielabfragen Azure Application Insights Analytics (Kusto Query Language).
Leistung beim Öffnen der App
Diese Abfrage zeigt die Leistungsmetriken für das Öffnen der App nach Tagen an. Verwenden Sie diese Abfrage, um Leistungstrends im Laufe der Zeit oder nach dem Vornehmen von Änderungen auszuwerten. Verwenden Sie das 75. Perzentil des Felds timeToAppInteractive, um durch Ausreißer verursachte Falschmeldungen zu vermeiden.
customEvents
| where name == "sessionLoadSummary"
| extend cd = parse_json(customDimensions)
| extend cm = parse_json(customMeasurements)
| extend timeToAppInteractive = todouble(cm["timeToAppInteractive"])
| extend successfulAppLaunch = tobool(cd.successfulAppLaunch)
| where successfulAppLaunch == true
| summarize percentile(timeToAppInteractive, 75)
by bin(timestamp, 1d)
| render timechart
Leistung der Netzwerkanforderung nach URL
Diese Abfrage analysiert benutzerdefinierte networkRequest Ereignisse in Application Insights. Sie extrahiert die URL und Dauer aus der Telemetrie. Anschließend werden die täglichen Anzahlen und die Antwortzeiten des 75. Perzentils pro URL zusammengefasst. Sie visualisiert die Ergebnisse als Zeitreihendiagramm.
customEvents
| where name == "networkRequest"
| extend cd = parse_json(customDimensions)
| extend url = tostring(cd.url)
| extend cm = parse_json(customMeasurements)
| extend duration = todouble(cm.duration)
| summarize
count(), percentile(duration, 75) by url, bin(timestamp, 1d)
| render timechart