Monitoring

Die Leistungsoptimierung beginnt mit der Ermittlung von Schlüsselmesswerten, die in der Regel mit Latenz und Durchsatz zusammenhängen. Durch das Hinzufügen von Monitoring zur Erfassung und Verfolgung dieser Messwerte werden Schwachstellen in der Anwendung aufgedeckt. Mithilfe von Messwerten kann die Optimierung vorgenommen werden, um Leistungsmesswerte zu verbessern.

Außerdem können Sie in vielen Monitoring-Tools Benachrichtigungen für Ihre Messwerte einrichten, damit Sie benachrichtigt werden, wenn ein bestimmter Grenzwert erreicht wird. Sie können beispielsweise eine Benachrichtigung einrichten, die Sie informiert, wenn der Prozentsatz der fehlgeschlagenen Anfragen um mehr als X% der normalen Werte steigt. Monitoring-Tools können Ihnen helfen, die normale Leistung zu ermitteln und ungewöhnliche Spitzen bei Latenz, Fehleranzahl und anderen wichtigen Messwerten zu erkennen. Die Möglichkeit, diese Messwerte zu überwachen, ist besonders wichtig in geschäftskritischen Zeiträumen oder nachdem neuer Code in der Produktion bereitgestellt wurde.

Latenzmesswerte ermitteln

Achten Sie darauf, dass Ihre Benutzeroberfläche so reaktionsschnell wie möglich ist. Nutzer haben noch höhere Erwartungen an mobile Apps. Die Latenz sollte auch für Backend-Dienste gemessen und verfolgt werden, da sie andernfalls zu Problemen mit dem Durchsatz führen kann.

Folgende Messwerte sollten Sie im Blick behalten:

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

Messwerte für den Durchsatz ermitteln

Der Durchsatz ist ein Maß für die Gesamtzahl der Anfragen, die über einen bestimmten Zeitraum verarbeitet wurden. Der Durchsatz kann durch die Latenz von Subsystemen beeinträchtigt werden. Daher müssen Sie möglicherweise die Latenz optimieren, um den Durchsatz zu verbessern.

Hier sind einige Vorschläge für Messwerte, die Sie im Blick behalten sollten:

  • Abfragen pro Sekunde
  • Übertragene Datenmenge 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 der Mittelwert

Ein häufiger Fehler bei der Leistungsmessung besteht darin, nur den Mittelwert (Durchschnitt) zu betrachten. Das ist zwar nützlich, gibt aber keinen Aufschluss über die Verteilung der Latenz. Ein besserer Messwert ist die Leistung in Perzentilen, z. B. das 50., 75., 90. und 99. Perzentil für einen Messwert.

Im Allgemeinen kann die Optimierung in zwei Schritten erfolgen. Optimieren Sie zuerst die Latenz im 90. Perzentil. Betrachten Sie dann das 99. Perzentil, auch als Tail-Latenz bezeichnet: der kleine Teil der Anfragen, deren Verarbeitung viel länger dauert.

Serverseitiges Monitoring für detaillierte Ergebnisse

Serverseitiges Profiling wird im Allgemeinen für die Verfolgung von Messwerten bevorzugt. Die Serverseite ist in der Regel viel einfacher zu instrumentieren, ermöglicht den Zugriff auf detailliertere Daten und ist weniger anfällig für Störungen durch Verbindungsprobleme.

Browser-Monitoring für vollständige Beobachtbarkeit

Wenn Ihre Google Ads API-Integration ein Web-Frontend für Endnutzer bereitstellt, kann das Browser-Profiling zusätzliche Einblicke in die Nutzererfahrung liefern. Es kann zeigen, auf welchen Seiten langsame Anfragen auftreten, die Sie dann mit dem serverseitigen Monitoring korrelieren können, um weitere Analysen durchzuführen.

Google Analytics bietet auch ein sofort einsatzbereites Monitoring für Seitenladezeiten im Seitentimings-Bericht. Dieser Bericht enthält mehrere nützliche Ansichten, um die Nutzererfahrung auf Ihrer Website zu verstehen, insbesondere:

  • Seitenladezeiten
  • Ladezeiten für Weiterleitungen
  • Antwortzeiten des Servers

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 protokollieren, und dann Dashboards in Google Cloud Monitoring einrichten, um die protokollierten Messwerte zu überwachen und zu segmentieren.

Im Logging-Leitfaden finden Sie ein Beispiel für einen benutzerdefinierten gRPC-Logging-Interceptor, der für die Python-Clientbibliothek geschrieben wurde. In diesem Beispiel ruft der Interceptor logger.log_struct() auf, um ein Python-Wörterbuch mit strukturierten Logdaten an Cloud Logging zu senden. Cloud Logging speichert diese Daten im Feld jsonPayload des Logeintrags:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

Wenn diese Daten in Google Cloud verfügbar sind, können Sie Messwerte auf Grundlage der protokollierten Daten erstellen, um mit Google Cloud Monitoring Einblicke in 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 Cloud Monitoring-Clientbibliotheken verwenden, um Messwerte in Ihrem Code zu definieren und sie getrennt von den Logs 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 zu verstehen. Da logger.log_struct() strukturierte Wörterbuchfelder in jedem Cloud Logging-Eintrag unter jsonPayload schreibt, können Sie einen Zählermesswert namens ErrorCount mit einem Filter erstellen, der mit fehlgeschlagenen Anfragen übereinstimmt, z. B. jsonPayload.is_fault = true.

In Cloud Logging können Sie mit Labels Ihre Messwerte anhand anderer Daten in den Logs in Kategorien gruppieren. Sie können ein STRING Label namens Method für das jsonPayload.method Feld konfigurieren, das an Cloud Logging gesendet wird, um die Anzahl der Fehler nach der Google Ads API-Methode aufzuschlüsseln.

Wenn der Messwert ErrorCount und das Label Method konfiguriert sind, können Sie in Cloud Monitoring ein neues Diagramm erstellen, um ErrorCount nach Method gruppiert zu überwachen.

Benachrichtigungen

In Cloud Monitoring und anderen Tools können Sie Benachrichtigungsrichtlinien konfigurieren, die festlegen, wann und wie Benachrichtigungen durch Ihre Messwerte ausgelöst werden sollen. Eine Anleitung zum Einrichten von Cloud Monitoring-Benachrichtigungen finden Sie unter Benachrichtigungen für logbasierte Messwerte.