Automatisieren von benutzerdefinierten Berichten mit Application Insights-Daten

Regelmäßig erstellte Berichte halten ein Team darüber im Laufenden, wie sich ihre unternehmenskritischen Dienste entwickeln. Dank automatisierter Berichte, die zuverlässig Informationen liefern, ohne dass sich alle beim Portal anmelden müssen, können Entwickler, DevOps/SRE-Teams und deren Vorgesetzte produktiv arbeiten. Derartige Berichte können auch dabei unterstützen, allmähliche Erhöhungen bei Latenzen, Lasten oder Fehlerraten zu ermitteln, die möglicherweise keine Warnungsregeln auslösen.

Jedes Unternehmen stellt einzigartige Berichterstellungsanforderungen wie etwa Folgende:

  • Aggregationen von Metriken mit einem bestimmten Quantil oder benutzerdefinierte Metriken in einem Bericht.
  • Verschiedene Berichte für tägliche, wöchentliche und monatliche Rollups von Daten für unterschiedliche Zielgruppen.
  • Segmentierung nach benutzerdefinierten Attributen wie Region oder Umgebung.
  • In einem einzelnen Bericht gruppierte KI-Ressourcen, auch wenn sie eventuell in verschiedenen Abonnements oder Ressourcengruppen enthalten sind.
  • Separate Berichte mit vertraulichen Metriken, die an ausgewählte Zielgruppen gesendet werden.
  • Berichte für Projektbeteiligte, die womöglich keinen Zugriff auf die Ressourcen des Portals haben.

Hinweis

Bei der Application Insights-E-Mail mit der wöchentlichen Übersicht waren keine Anpassungen möglich, weshalb diese zugunsten der hier aufgeführten benutzerdefinierten Optionen eingestellt wird. Die letzte E-Mail mit wöchentlicher Übersicht wurde am 11. Juni 2018 versendet. Konfigurieren Sie eine der folgenden Optionen, um ähnliche benutzerdefinierte Berichte zu erhalten. Verwenden Sie die Abfrage, die in diesem Artikel vorgeschlagen wird.

Automatisieren benutzerdefinierter Berichts-E-Mails

Sie können Application Insights-Daten programmgesteuert abfragen , um benutzerdefinierte Berichte nach einem Zeitplan zu generieren. Die folgenden Optionen ermöglichen Ihnen einen schnellen Einstieg:

Beispielabfrage für eine E-Mail mit wöchentlicher Zusammenfassung

Die folgende Abfrage zeigt, wie mehrere Datasets für eine E-Mail mit wöchentlicher Übersicht, wie etwa bei einem Bericht, verknüpft werden können. Passen Sie sie nach Bedarf an, und verwenden Sie sie mit einer der zuvor aufgeführten Optionen zur Automatisierung eines wöchentlichen Berichts.

let period=7d;
requests
| where timestamp > ago(period)
| summarize Row = 1, TotalRequests = sum(itemCount), FailedRequests = sum(toint(success == 'False')),
    RequestsDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
| join (
dependencies
| where timestamp > ago(period)
| summarize Row = 1, TotalDependencies = sum(itemCount), FailedDependencies = sum(success == 'False'),
    DependenciesDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row | join (
pageViews
| where timestamp > ago(period)
| summarize Row = 1, TotalViews = sum(itemCount)
) on Row | join (
exceptions
| where timestamp > ago(period)
| summarize Row = 1, TotalExceptions = sum(itemCount)
) on Row | join (
availabilityResults
| where timestamp > ago(period)
| summarize Row = 1, OverallAvailability = iff(isnan(avg(toint(success))), '------', tostring(toint(avg(toint(success)) * 10000) / 100.0)),
    AvailabilityDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row
| project TotalRequests, FailedRequests, RequestsDuration, TotalDependencies, FailedDependencies, DependenciesDuration, TotalViews, TotalExceptions, OverallAvailability, AvailabilityDuration

Bericht „AppInsights: Geplante Übersicht“

  1. Erstellen einer Azure Functions-App. Application Insights muss nur dann auf Ein festgelegt sein, wenn Sie Ihre neue Azure Functions-App mit Application Insights überwachen möchten.

    Informationen zum Erstellen einer Funktions-App finden Sie in der Azure Functions-Dokumentation.

  2. Nachdem die Bereitstellung Ihrer neuen Azure Functions-App abgeschlossen wurde, wählen Sie Zu Ressource wechseln aus.

  3. Klicken Sie auf Neue Funktion.

    Screenshot des Erstellens einer neuen Funktion.

  4. Wählen Sie die Vorlage AppInsights: Geplante Übersicht aus.

    Hinweis

    Standardmäßig werden Funktionen-Apps mit Runtimeversion 3.x erstellt. Sie müssen Runtimeversion 1.x von Azure Functions als Ziel einstellen, um die Vorlage „AppInsights: Geplante Übersicht“ zu verwenden. Wechseln Sie zu Konfiguration>Einstellungen der Funktionsruntime, um die Runtimeversion zu ändern. Screenshot der Registerkarte „Einstellungen der Funktionsruntime“.

    Screenshot von „Neue Funktion – Application Insights-Vorlage“.

  5. Geben Sie eine geeignete Empfänger-E-Mail-Adresse für Ihren Bericht ein, und wählen Sie Erstellen aus.

    Screenshot der Funktionseinstellungen.

  6. Wählen Sie Funktions-Apps>Plattformfunktionen>Konfiguration aus.

    Screenshot der Einstellungen der Azure-Funktionsanwendung.

  7. Erstellen Sie drei neue Anwendungseinstellungen mit den geeigneten entsprechenden Werten: AI_APP_ID, AI_APP_KEY und SendGridAPI. Wählen Sie Speichern aus.

    Screenshot der Funktionsintegrationsoberfläche.

    Die Werte vom Typ „AI_“ befinden sich unter API-Zugriff für die Application Insights-Ressource, für die ein Bericht erstellt werden soll. Sollten Sie über keinen Application Insights-API-Schlüssel verfügen, verwenden Sie die Option API-Schlüssel erstellen.

    • AI_APP_ID: Anwendungs-ID

    • AI_APP_KEY: API-Schlüssel

    • SendGridAPI: SendGrid-API-Schlüssel

      Hinweis

      Falls Sie über kein SendGrid-Konto verfügen, können Sie eins erstellen. Weitere Informationen finden Sie unter SendGrid-Bindungen in Azure Functions in der SendGrid-Dokumentation für Azure Functions. Eine kurze Erläuterung der Vorgehensweise zum Einrichten von SendGrid sowie zum Generieren eines API-Schlüssels finden Sie am Ende dieses Artikels.

  8. Wählen Sie Integrieren aus. Wählen Sie unter Ausgaben die Option SendGrid ($return) aus.

    Screenshot von „Ausgaben“.

  9. Wählen Sie unter der App-Einstellung für SendGrid-API-Schlüssel Ihre neu erstellte App-Einstellung SendGridAPI aus.

    Screenshot von SendGridAPI.

  10. Führen Sie Ihre Funktions-App aus, und testen Sie sie.

    Screenshot von „Testen“.

  11. Überprüfen Sie Ihren Posteingang, um sich zu vergewissern, dass die Nachricht erfolgreich gesendet oder empfangen wurde.

    Screenshot der Betreffzeile der E-Mail.

SendGrid mit Azure

Die folgenden Schritte sind nur relevant, wenn Sie noch kein SendGrid-Konto konfiguriert haben.

  1. Klicken Sie im Azure-Portal auf Ressource erstellen. Suchen Sie nach SendGrid-E-Mail-Zustellung, und wählen Sie Erstellen aus. Füllen Sie die SendGrid-Anweisungen aus.

    Screenshot der SendGrid-Schaltfläche „Erstellen“.

  2. Wählen Sie unter SendGrid-Konten die Option Verwalten aus.

    Screenshot der Schaltfläche „Manage“ (Verwalten)

  3. Mit dieser Aktion wird die SendGrid-Website geöffnet. Klicken Sie auf Einstellungen>API-Schlüssel.

    Screenshot der „API-Schlüssel“ unter „Einstellungen“.

  4. Um einen API-Schlüssel zu erstellen, wählen Sie Erstellen & Ansicht aus. Ermitteln Sie anhand der SendGrid-Dokumentation zu eingeschränktem Zugriff, welche Berechtigungsstufe für Ihren API-Schlüssel geeignet ist. Vollzugriff wird hier nur als Beispiel ausgewählt.

    Screenshot des Vollzugriffs.

  5. Kopieren Sie den ganzen Schlüssel. Diesen Wert benötigen Sie in den Einstellungen Ihrer Funktions-App als Wert für SendGridAPI.

    Screenshot des Bereichs „API-Schlüssel erstellt“.