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:
Verwenden Sie im Überwachungsszenario die Azure Functions-Vorlage für AppInsights: Geplante Übersicht. Bei dieser Funktion werden E-Mails über SendGrid übermittelt.
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“
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.
Nachdem die Bereitstellung Ihrer neuen Azure Functions-App abgeschlossen wurde, wählen Sie Zu Ressource wechseln aus.
Klicken Sie auf Neue Funktion.
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.
Geben Sie eine geeignete Empfänger-E-Mail-Adresse für Ihren Bericht ein, und wählen Sie Erstellen aus.
Wählen Sie Funktions-Apps>Plattformfunktionen>Konfiguration aus.
Erstellen Sie drei neue Anwendungseinstellungen mit den geeigneten entsprechenden Werten:
AI_APP_ID
,AI_APP_KEY
undSendGridAPI
. Wählen Sie Speichern aus.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.
Wählen Sie Integrieren aus. Wählen Sie unter Ausgaben die Option SendGrid ($return) aus.
Wählen Sie unter der App-Einstellung für SendGrid-API-Schlüssel Ihre neu erstellte App-Einstellung SendGridAPI aus.
Führen Sie Ihre Funktions-App aus, und testen Sie sie.
Überprüfen Sie Ihren Posteingang, um sich zu vergewissern, dass die Nachricht erfolgreich gesendet oder empfangen wurde.
SendGrid mit Azure
Die folgenden Schritte sind nur relevant, wenn Sie noch kein SendGrid-Konto konfiguriert haben.
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.
Wählen Sie unter SendGrid-Konten die Option Verwalten aus.
Mit dieser Aktion wird die SendGrid-Website geöffnet. Klicken Sie auf Einstellungen>API-Schlüssel.
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.
Kopieren Sie den ganzen Schlüssel. Diesen Wert benötigen Sie in den Einstellungen Ihrer Funktions-App als Wert für
SendGridAPI
.