Beobachtbarkeit in Google Cloud

Google Cloud Observability umfasst Beobachtbarkeitsdienste, mit denen Sie das Verhalten, den Zustand und die Leistung Ihrer Anwendungen besser verstehen können. Einblicke in das Verhalten von Anwendungen und die Verbindung von Komponenten helfen Ihnen, unerwartete Änderungen schneller und effektiver vorherzusagen, zu erkennen und auf sie zu reagieren.

Dieses Dokument enthält die folgenden Informationen:

Informationen zur Beobachtbarkeit

Beobachtbarkeit ist ein ganzheitlicher Ansatz zum Erfassen und Analysieren von Telemetriedaten, um den Status Ihrer Umgebung zu ermitteln. Telemetriedaten sind Messwerte, Protokolle, Traces und andere Daten, die von Ihren Anwendungen und der Anwendungsinfrastruktur generiert werden und Informationen zum Zustand und zur Leistung der Anwendung liefern.

Messwerte
Messwerte sind numerische Daten zum Zustand oder zur Leistung, die Sie in regelmäßigen Abständen im Zeitverlauf messen, z. B. CPU-Auslastung und Anfragelatenz. Unerwartete Änderungen an einem Messwert können auf ein Problem hinweisen, das untersucht werden sollte. Mit der Zeit können Sie auch Messwertmuster analysieren, um Nutzungsmuster besser zu verstehen und Ressourcenanforderungen vorauszusehen.
Logs

Ein Protokoll ist ein generierter Datensatz von System- oder Anwendungsaktivitäten im Zeitverlauf. Jedes Log ist eine Sammlung von getaggten Logeinträgen. Jeder Logeintrag beschreibt ein Ereignis zu einem bestimmten Zeitpunkt.

Ein Log enthält oft umfangreiche, detaillierte Informationen, die Ihnen helfen, zu verstehen, was mit einem bestimmten Teil Ihrer Anwendung passiert ist. Protokolle liefern jedoch keine guten Informationen dazu, wie sich eine Änderung an einer Komponente Ihrer Anwendung auf die Aktivität in einer anderen Komponente auswirkt. Traces können helfen, diese Lücke zu schließen.

Traces

Traces stellen den Pfad einer Anfrage über alle Teile Ihrer verteilten Anwendung hinweg dar. Ein Messwert oder Logeintrag in einer Anwendungskomponente, der eine Benachrichtigung ausgelöst hat, kann ein Symptom für ein Problem sein, das in einer anderen Komponente liegt. Mithilfe von Traces können Sie den Ablauf einer Anfrage verfolgen und Latenzdaten prüfen, um die Ursache eines Problems zu ermitteln.

Weitere Daten

Wenn Sie Messwerte, Protokolle und Traces im Kontext anderer Daten analysieren, erhalten Sie zusätzliche Informationen. Ein Label für den Schweregrad einer Benachrichtigung oder die mit einer Anfrage in Logs verknüpfte Kunden-ID liefern beispielsweise Kontext, der für die Fehlerbehebung und das Debugging nützlich sein kann.

Das Monitoring, das Debugging und die Fehlerbehebung bei verteilten Anwendungen können schwierig sein, da viele Systeme und Softwarekomponenten beteiligt sind, oft mit einer Mischung aus Open-Source- und kommerzieller Software.

Beobachtbarkeitstools helfen Ihnen, diese Komplexität zu bewältigen, indem sie relevante Daten erfassen und Funktionen bereitstellen, um die Daten zu untersuchen, zu analysieren und zu korrelieren. Eine beobachtbare Umgebung hilft Ihnen bei Folgendem:

  • Probleme proaktiv erkennen, bevor sie sich auf Ihre Nutzer auswirken
  • Fehlerbehebung bei bekannten und neuen Problemen
  • Anwendungen während der Entwicklung beheben
  • Auswirkungen von Änderungen auf Anwendungen einplanen und verstehen
  • Daten analysieren, um neue Erkenntnisse zu gewinnen

Kurz gesagt: Eine beobachtbare Umgebung hilft Ihnen, die Zuverlässigkeit von Anwendungen aufrechtzuerhalten. Eine Anwendung ist zuverlässig, wenn sie Ihre aktuellen Ziele für Verfügbarkeit und Robustheit gegenüber Ausfällen erfüllt.

Weitere Informationen zu Zuverlässigkeitspraktiken, einschließlich Prinzipien und Praktiken im Zusammenhang mit Beobachtbarkeit, finden Sie im Buch Site Reliability Engineering: How Google Runs Production Systems. Enthaltene Themen:

Google Cloud Observability

Mit Diensten in Google Cloud Observability können Sie Telemetriedaten erfassen, analysieren und korrelieren. Außerdem bieten sie integrierte Standardeinstellungen, damit Ihr Einstieg schneller gelingt, beispielsweise standardmäßige Dashboards und Benachrichtigungsrichtlinien.

Cloud Monitoring, Cloud Logging und Cloud Trace gehören zu den standardmäßig aktivierten Diensten, wenn Sie ein Google Cloud-Projekt erstellen.

Monitoring: Anhand der erfassten Messwerte können Sie den Zustand und die Leistung überwachen, Trends und Probleme erkennen und bei Verhaltensänderungen benachrichtigt werden.

  • Erfassen Sie für die meisten Google Cloud-Dienste automatisch Messwerte.
  • Erfassen Sie System- und Anwendungsmesswerte aus Drittanbieteranwendungen.
  • Messwerte mit Standard- oder benutzerdefinierten Dashboards visualisieren und analysieren
  • Mit synthetischem Monitoring die Leistung Ihrer Anwendungen testen.
  • Definieren Sie Service Level Objectives (SLOs), um die Dienstzuverlässigkeit zu überwachen.
  • Erhalten Sie Benachrichtigungen, wenn Probleme auftreten.

Logging: Verwenden Sie erfasste Logs, um Fehler in Ihren Anwendungen zu beheben, sie zu debuggen und Informationen über sie zu erhalten.

  • Erfassen Sie automatisch Logs für die meisten Google Cloud-Dienste.
  • Erfassen Sie automatisch Audit-Logs für die meisten Google Cloud-Dienste.
  • Erfassen Sie Logs von Software von Drittanbietern.
  • Untersuchen und analysieren Sie Logs.
  • Mit Loganalysen können Sie eine Analyse all Ihrer Logs und anderen Daten mit BigQuery ausführen. Beispielsweise können Sie mit BigQuery URLs in Ihren Logs mit einem öffentlichen Dataset von bekannten schädlichen URLs vergleichen.
  • Messwerte aus Protokollen erstellen
  • Erhalten Sie Benachrichtigungen, wenn eine bestimmte Nachricht in einem Log angezeigt wird.

Error Reporting: Hier können Sie Fehler von laufenden Cloud-Diensten ansehen und analysieren:

  • Fehler, die von Error Reporting in Logeinträgen erkannt werden, zusammenfassen und die zugehörigen Protokolle aufrufen
  • Aggregieren Sie Fehler, die Ihre Anwendungen an die Error Reporting API senden.

Trace: Sehen Sie sich den Ablauf und die Latenz von Anwendungsanfragen an und analysieren Sie sie, wenn Sie das Debugging und die Fehlerbehebung durchführen.

  • Verfolgen Sie, wie Anfragen durch Ihre Anwendungen weitergeleitet werden.
  • Erfassen Sie Latenzdaten aus Ihren Anwendungen und rufen Sie Diagramme der Daten auf.
  • Rufen Sie Latenzberichte auf, die Leistungsverschlechterungen aufzeigen.
  • Erhalten Sie Benachrichtigungen über Änderungen im Latenzprofil für Ihre Anwendungen.
  • Traces mit benutzerdefinierten Attributen annotieren
  • Exportieren Sie Traces nach BigQuery, um sie mit anderen Daten zu untersuchen.

Cloud Profiler: Analysieren Sie die CPU- und Arbeitsspeichernutzung Ihrer Anwendungen, um Optimierungsmöglichkeiten zu erkennen.

  • Erfassen Sie Daten zur CPU-Auslastung und Arbeitsspeicherzuweisung aus Ihren Anwendungen.
  • Sie können die Teile einer Anwendung ermitteln, die die meisten Ressourcen beanspruchen, und sich Statistiken zur Gesamtleistung der Anwendung ansehen.

Mehr erfahren

In diesem Abschnitt werden Schritte beschrieben, mit denen Sie sich mit den Funktionen zur Beobachtbarkeit in Google Cloud vertraut machen können.

Kurzanleitungen ausprobieren

Probieren Sie die Kurzanleitungen aus, um sich mit den verfügbaren Diensten vertraut zu machen.

Automatisch erhobene Daten ansehen

Die meisten Google Cloud-Dienste generieren automatisch vordefinierte Messwerte und Protokolle. Das bedeutet, dass Sie sich ohne zusätzliche Konfiguration einige beobachtbare Daten für unterstützte Google Cloud-Dienste ansehen können.

  • Einige Google Cloud-Dienste wie Google Kubernetes Engine (GKE), Compute Engine und Cloud SQL stellen Standard-Dashboards in der Google Cloud Console bereit, damit sich Beobachtbarkeitsdaten im Kontext des Dienstes aufrufen lassen.
  • Compute Engine, GKE und Cloud Run generieren standardmäßig Systemmesswerte und Logs und Sie konfigurieren die Erfassung zusätzlicher Daten.
  • Cloud Run-Funktionen und App Engine generieren automatisch Messwerte, Protokolle und Traces.

Sie können erfasste Messwerte auch im Metrics Explorer in Diagrammen darstellen, Logs im Log-Explorer aufrufen oder Traces in Trace ansehen. Wenn Sie ähnliche Daten zusammen ansehen möchten, erstellen Sie benutzerdefinierte Dashboards. Sie können beispielsweise ein Dashboard mit Protokollen, Leistungsmesswerten und Benachrichtigungsrichtlinien für virtuelle Maschinen erstellen.

Compute Engine-VMs für die Erhebung zusätzlicher Daten konfigurieren

Compute Engine-VMs erfassen standardmäßig nur grundlegende Systemmesswerte und Logs ohne den Ops-Agent.

Installieren Sie den Ops-Agent, um zusätzliche Telemetriedaten (Logs, Messwerte und Traces) aus Ihren Compute Engine-Instanzen und -Anwendungen zur Fehlerbehebung, Leistungsüberwachung und für Benachrichtigungen zu erfassen.

GKE-Cluster für die Erfassung zusätzlicher Daten konfigurieren

Standardmäßig senden GKE-Cluster Systemprotokolle und Systemmesswerte an Logging und Monitoring. Google Cloud Managed Service for Prometheus übernimmt die Erfassung von benutzerdefinierten Messwerten und solchen von Drittanbietern.

  • Verwenden Sie Pakete für Messwerte zur Beobachtbarkeit, um den Status Ihrer Anwendungen und Clusterressourcen besser zu verstehen. Messwerte der Steuerungsebene sind beispielsweise nützlich, um SLOs zum Überwachen der Dienstverfügbarkeit und Latenz zu erstellen.
  • Überwachen Sie Anwendungen von Drittanbietern wie Postgres, MongoDB und Redis. Diese Integrationen bieten vorkonfigurierte Dashboards und Benachrichtigungsrichtlinien.

Cloud Run für die Erhebung benutzerdefinierter Daten konfigurieren

Wenn Sie einen Cloud Run-Dienst haben, der Prometheus-Messwerte schreibt, können Sie die Messwerte mit dem Prometheus-Sidecar an Cloud Monitoring senden.

Wenn Ihr Cloud Run-Dienst stattdessen OTLP-Messwerte schreibt, können Sie einen OpenTelemetry-Sidecar verwenden. Ein Beispiel finden Sie in der Anleitung zum Erfassen von OTLP-Messwerten mit dem Sidecar.

Anwendungen instrumentieren

Instrumentierung ist Code, den Sie einer Anwendung hinzufügen, um Telemetriedaten auszugeben. Es gibt mehrere Open-Source-Instrumentierungs-Frameworks, mit denen Sie Messwerte, Protokolle und Traces aus Ihrer Anwendung erfassen und an jeden Anbieter senden können, einschließlich Google Cloud. Möglicherweise müssen Sie Ihre Anwendung jedoch nicht instrumentieren. Cloud Run, Cloud Run Functions und App Engine bieten beispielsweise automatisches Tracing.

Wir empfehlen, zur Instrumentierung Ihrer Anwendung ein anbieterunabhängiges Open-Source-Instrumentierungsframework wie OpenTelemetry zu verwenden, anstatt anbieter- und produktspezifische APIs oder Clientbibliotheken. Weitere Informationen zur Instrumentierung Ihrer Anwendung finden Sie unter Instrumentierung und Beobachtbarkeit.

Codebeispiele, die zeigen, wie Sie Ihre Anwendung zum Senden von Telemetriedaten an Google Cloud instrumentieren, finden Sie unter:

Folgende Themen könnten ebenfalls für Sie interessant sein: