Die Leistungsoptimierung beginnt mit der Identifizierung wichtiger Messwerte, die sich in der Regel auf Latenz und Durchsatz beziehen. Durch das Hinzufügen von Monitoring zum Erfassen und Verfolgen dieser Messwerte werden Schwachstellen in der Anwendung aufgedeckt. Mithilfe von Messwerten können Optimierungen vorgenommen werden, um die 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 Schwellenwert erreicht wird. Sie können beispielsweise eine Benachrichtigung einrichten, die Sie informiert, wenn der Prozentsatz der fehlgeschlagenen Anfragen um mehr als X% über dem normalen Niveau liegt. Mithilfe von Monitoring-Tools können Sie die normale Leistung ermitteln und ungewöhnliche Spitzen bei der Latenz, der Anzahl der Fehler und anderen wichtigen Messwerten erkennen. Die Möglichkeit, diese Messwerte zu überwachen, ist besonders in geschäftskritischen Zeiträumen oder nach der Bereitstellung von neuem Code in der Produktion wichtig.
Latenzmesswerte identifizieren
Achten Sie darauf, dass die Benutzeroberfläche so responsiv wie möglich ist. Nutzer erwarten von mobilen Apps sogar noch höhere Standards. Die Latenz sollte auch für Backend-Dienste gemessen und verfolgt werden, insbesondere da sie zu Durchsatzproblemen führen kann, wenn sie nicht kontrolliert wird.
Folgende Messwerte sollten Sie im Blick behalten:
- Anfragedauer
- Anfragedauer auf Subsystemebene (z. B. API-Aufrufe)
- Jobdauer
Durchsatzmesswerte identifizieren
Der Durchsatz ist ein Maß für die Gesamtzahl der Anfragen, die in einem 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 Messwerte, die Sie erfassen sollten:
- Abfragen pro Sekunde
- Größe der pro Sekunde übertragenen Daten
- Anzahl der E/A-Vorgänge pro Sekunde
- Ressourcenauslastung, 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, bietet aber keinen Einblick in die Verteilung der Latenz. Ein besserer Messwert sind die Leistungsperzentile, 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 für die Latenz des 90. Perzentils. Betrachten Sie dann das 99. Perzentil, auch als Tail-Latenz bezeichnet: der kleine Teil der Anfragen, deren Bearbeitung viel länger dauert.
Serverseitiges Monitoring für detaillierte Ergebnisse
Serverseitiges Profiling wird im Allgemeinen für das Tracking 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 End-to-End-Sichtbarkeit
Wenn Ihre Google Ads API-Integration Endnutzern ein Web-Frontend bereitstellt, kann das Browser-Profiling zusätzliche Informationen zur Nutzerfreundlichkeit liefern. Sie können sehen, welche Seiten langsame Anfragen haben, und diese dann für weitere Analysen mit dem serverseitigen Monitoring korrelieren.
Google Analytics bietet im Analytics-Bericht „Seiten-Timings“ auch ein sofort einsatzbereites Monitoring für Seitenladezeiten. Hier finden Sie mehrere nützliche Ansichten, um die Nutzerfreundlichkeit 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, das Cloud Logging im Feld jsonPayload des Logeintrags speichert:
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 über Google Cloud Monitoring Einblick in Ihre Anwendung zu erhalten. Folgen Sie der Anleitung für benutzerdefinierte logbasierte Messwerte, um Messwerte mithilfe 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() in jedem Cloud Logging-Eintrag strukturierte Wörterbuchfelder unter jsonPayload schreibt, können Sie einen Zählermesswert mit dem Namen ErrorCount mit einem Filter erstellen, der mit fehlgeschlagenen Anfragen wie jsonPayload.is_fault = true übereinstimmt.
In Cloud Logging können Sie Ihre Messwerte mithilfe von Labels anhand anderer Daten in den Logs in Kategorien gruppieren. Sie können ein STRING-Label mit dem Namen Method im Feld jsonPayload.method konfigurieren, das an Cloud Logging gesendet wird, um die Fehleranzahl 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, gruppiert nach Method, 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 im Leitfaden zu Benachrichtigungen für logbasierte Messwerte.