Freigeben über


Vorgehensweise: Einrichten von Azure App Insights für Ihre Code-App

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.

  1. 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.
  2. Installieren des Application Insights SDK

    Fügen Sie das npm-Paket zu Ihrem Code-App-Projekt hinzu.

    npm install @microsoft/applicationinsights-web 
    
  3. Initialisieren 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.

  4. Konfigurieren des Loggers

    Stellen Sie einen Logger bereit, damit die Plattform Sitzungs- und Netzwerkmetriken an Ihr Überwachungssystem weiterleiten kann. Die Plattform ruft die logMetric Funktion mit Metriken wie sessionLoadSummary und networkLoadSummary. 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

    • logMetric type: Definieren Sie es als (value: Metric) => void für Klarheit.

    • Loggerschnittstelle:

      interface ILogger { 
      logMetric?: (value: Metric) => void; 
      } 
      

    Sie können ILogger von: @microsoft/power-apps.

    import type { ILogger } from '@microsoft/power-apps/telemetry' 
    

    Hinweis

    Dies ist nur ein Beispiel. Sie müssen logMetric implementieren, 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.

  5. 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

    1. Öffnen Sie Ihre App, wenn Application Insights konfiguriert ist.

    2. Ö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.
    3. Gehen Sie zur Registerkarte "Konsole".

    4. 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.

      Wie Sie die Konsole nur Fehler anzeigen lassen

    5. Suchen Sie nach Fehlern mit der Nachricht: Connecting to 'https:...' violates the following Content Security Policy directive.

      Siehe die erwarteten CSP-Verstöße

    6. 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

    1. Navigieren Sie zum Power Platform Admin Center.

    2. 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.

      Beispiel-CSP-Quellen

    3. 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.

  6. Anzeigen von Protokollen in Azure portal

    • Öffnen Sie die Application Insights-Ressource.
    • Wechseln Sie zu Überwachungsprotokollen>.
    • Fragen Sie die customEvents Tabelle 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; 
    } 
    
  7. (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