Monitoring

Die Leistungsoptimierung beginnt mit der Identifizierung wichtiger Messwerte, die in der Regel mit Latenz und Durchsatz zusammenhängen. Durch die Überwachung dieser Messwerte werden Schwachstellen in der Anwendung aufgedeckt. Mithilfe von Messwerten können Sie die Leistung optimieren.

Mit vielen Monitoring-Tools können Sie außerdem Benachrichtigungen für Ihre Messwerte einrichten, damit Sie benachrichtigt werden, wenn ein bestimmter Grenzwert erreicht wird. Sie können beispielsweise eine Benachrichtigung einrichten, damit Sie informiert werden, wenn der Prozentsatz der fehlgeschlagenen Anfragen um mehr als x% über dem Normalwert liegt. Mithilfe von Monitoring-Tools können Sie erkennen, wie die normale Leistung aussieht, und ungewöhnliche Spitzen bei Latenz, Fehlermengen und anderen wichtigen Messwerten identifizieren. Die Möglichkeit, diese Messwerte zu überwachen, ist besonders wichtig in geschäftskritischen Zeiträumen oder nachdem neuer Code in die Produktion verschoben wurde.

Latenzmesswerte identifizieren

Achten Sie darauf, dass Ihre Benutzeroberfläche so reaktionsschnell wie möglich ist. Nutzer erwarten von mobilen Apps sogar noch höhere Standards. Die Latenz sollte auch für Back-End-Dienste gemessen und erfasst werden, da sie bei Nichtbeachtung zu Durchsatzproblemen führen kann.

Zu den empfohlenen Messwerten gehören:

  • Anfragedauer
  • Anfragedauer auf Subsystemebene (z. B. API-Aufrufe)
  • Jobdauer

Durchsatzmesswerte ermitteln

Der Durchsatz ist ein Maß für die Gesamtzahl der Anfragen, die in einem bestimmten Zeitraum verarbeitet wurden. Der Durchsatz kann von der Latenz von Subsystemen beeinflusst werden. Daher müssen Sie möglicherweise die Latenz optimieren, um den Durchsatz zu verbessern.

Hier sind einige Messwerte, die Sie im Blick behalten sollten:

  • Abfragen pro Sekunde
  • Größe der übertragenen Daten pro Sekunde
  • Anzahl der E/A-Vorgänge pro Sekunde
  • Ressourcennutzung, z. B. CPU- oder Arbeitsspeichernutzung
  • Größe des Verarbeitungsrückstands, z. B. Pub/Sub oder Anzahl der Threads

Nicht nur den Mittelwert

Ein häufiger Fehler bei der Leistungsmessung besteht darin, sich nur auf den Mittelwert zu konzentrieren. Das ist zwar hilfreich, gibt aber keinen Aufschluss über die Verteilung der Latenz. Besser geeignet sind die Leistungspercentilen, z. B. der 50. / 75. / 90. / 99. Perzentilwert eines Messwerts.

Im Allgemeinen kann die Optimierung in zwei Schritten erfolgen. Optimieren Sie zuerst die Latenz für den 90. Perzentilwert. Sehen Sie sich dann den 99. Perzentilwert an, auch als Schwanzlatenz bezeichnet: der kleine Teil der Anfragen, die viel länger dauern.

Serverseitiges Monitoring für detaillierte Ergebnisse

Für das Erfassen von Messwerten wird in der Regel das serverseitige Profiling bevorzugt. Die Serverseite ist in der Regel viel einfacher zu instrumentieren, ermöglicht den Zugriff auf detailliertere Daten und ist weniger von Verbindungsproblemen betroffen.

Browser-Monitoring für umfassende Transparenz

Das Browser-Profiling kann zusätzliche Informationen zur Nutzerfreundlichkeit liefern. Sie können sehen, auf welchen Seiten es zu langsamen Anfragen kommt, die Sie dann für weitere Analysen mit dem serverseitigen Monitoring in Beziehung setzen können.

In Google Analytics können Sie die Seitenladezeiten im Bericht zu Seitenzeiten direkt überwachen. So erhalten Sie mehrere nützliche Ansichten, um die Nutzerfreundlichkeit Ihrer Website zu verstehen, insbesondere:

  • Seitenladezeiten
  • Ladezeiten für Weiterleitungen
  • Serverantwortzeiten

Monitoring in der Cloud

Es gibt viele Tools, mit denen Sie Leistungsmesswerte für Ihre Anwendung erfassen und überwachen können. Sie können beispielsweise Google Cloud Logging verwenden, um Leistungsmesswerte in Ihrem Google Cloud-Projekt zu erfassen, und dann Dashboards in Google Cloud Monitoring einrichten, um die erfassten Messwerte zu überwachen und zu segmentieren.

Im Leitfaden zum Logging finden Sie ein Beispiel für das Logging in Google Cloud Logging über einen benutzerdefinierten Interceptor in der Python-Clientbibliothek. Da diese Daten in Google Cloud verfügbar sind, können Sie Messwerte auf Grundlage der protokollierten Daten erstellen, um über Google Cloud Monitoring einen Überblick über Ihre Anwendung zu erhalten. Folgen Sie der Anleitung für benutzerdefinierte logbasierte Messwerte, um Messwerte anhand der an Google Cloud Logging gesendeten Logs zu erstellen.

Alternativ können Sie die Monitoring-Clientbibliotheken verwenden, um Messwerte in Ihrem Code zu definieren und sie separat von den Protokollen direkt an Monitoring zu senden.

Beispiel für logbasierte Messwerte

Angenommen, Sie möchten den Wert is_fault überwachen, um die Fehlerraten in Ihrer Anwendung besser nachvollziehen zu können. Sie können den Wert is_fault aus den Protokollen in einen neuen Zählermesswert, ErrorCount, extrahieren.

Messwertkonfiguration

Filter und Labels in Messwerten

In Cloud Logging können Sie mit Labels Ihre Messwerte anhand anderer Daten in den Protokollen in Kategorien gruppieren. Sie können ein Label für das method-Feld konfigurieren, das an Cloud Logging gesendet wird, um zu sehen, wie die Fehleranzahl nach Google Ads API-Methode aufgeschlüsselt wird.

Nachdem Sie den Messwert ErrorCount und das Label Method konfiguriert haben, können Sie in einem Monitoring-Dashboard ein neues Diagramm erstellen, um ErrorCount nach Method zu überwachen.

Dashboard „ErrorCount“

Benachrichtigungen

In Cloud Monitoring und anderen Tools können Sie Benachrichtigungsrichtlinien konfigurieren, die angeben, wann und wie Benachrichtigungen durch Ihre Messwerte ausgelöst werden sollen. Eine Anleitung zum Einrichten von Cloud Monitoring-Benachrichtigungen finden Sie im Leitfaden zu Benachrichtigungen.