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 verstehen. Telemetriedaten sind Messwerte, Logs, Traces und andere Daten, die von Ihren Anwendungen und der Anwendungsinfrastruktur generiert werden und Informationen zum Zustand und zur Leistung der Anwendung bereitstellen.

Messwerte
Messwerte sind numerische Daten zum Zustand oder zur Leistung, die Sie in regelmäßigen Abständen im Zeitverlauf messen, z. B. die CPU-Auslastung und die 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 Log ist ein generierter Datensatz der System- oder Anwendungsaktivität im Zeitverlauf. Jedes Log ist eine Sammlung von Logeinträgen mit Zeitstempeln und jeder Logeintrag beschreibt ein Ereignis zu einem bestimmten Zeitpunkt.

Ein Log enthält häufig ausführliche, detaillierte Informationen, die Ihnen helfen, zu verstehen, was mit einem bestimmten Teil Ihrer Anwendung passiert ist. Logs bieten jedoch keine guten Informationen dazu, wie sich eine Änderung in einer Komponente Ihrer Anwendung auf die Aktivität in einer anderen Komponente auswirkt. Traces können dazu beitragen, 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, die eine Benachrichtigung ausgelöst hat, kann ein Symptom eines Problems sein, das in einer anderen Komponente auftritt. Mit Traces können Sie den Ablauf einer Anfrage verfolgen und Latenzdaten untersuchen, um die Ursache eines Problems zu ermitteln.

Andere Daten

Sie erhalten zusätzliche Einblicke, indem Sie Messwerte, Logs und Traces im Kontext anderer Daten analysieren. 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 bietet folgende Vorteile:

  • Probleme proaktiv erkennen, bevor sie sich auf Ihre Nutzer auswirken
  • Bekannte und neue Probleme beheben
  • Anwendungen während der Entwicklung debuggen
  • Auswirkungen von Änderungen auf Anwendungen einplanen und verstehen
  • Daten untersuchen, um neue Erkenntnisse zu gewinnen

Kurz gesagt, eine beobachtbare Umgebung trägt dazu bei, die Zuverlässigkeit der Anwendung aufrechtzuerhalten. Eine Anwendung ist zuverlässig, wenn sie Ihre aktuellen Ziele in Bezug auf Verfügbarkeit und Ausfallsicherheit erfüllt.

Weitere Informationen zu Zuverlässigkeitspraktiken, einschließlich Prinzipien und Best Practices für die Beobachtbarkeit, finden Sie im Buch Site Reliability Engineering: How Google Runs Production Systems. Dort finden Sie u. a. Informationen zu folgenden 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: Verwenden Sie erfasste Messwerte, um Zustand und Leistung zu überwachen, Trends und Probleme zu erkennen und Benachrichtigungen bei Änderungen im Verhalten zu senden.

  • Erfassen Sie für die meisten Google Cloud-Dienste automatisch Messwerte.
  • Erfassen Sie System- und Anwendungsmesswerte aus Drittanbieteranwendungen.
  • Visualisieren und analysieren Sie Messwerte mit standardmäßigen oder benutzerdefinierten Dashboards.
  • Testen Sie die Leistung Ihrer Anwendungen mit synthetischem Monitoring.
  • Definieren Sie Service Level Objectives (SLOs), um die Zuverlässigkeit des Dienstes 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.
  • Für die meisten Google Cloud-Dienste werden Audit-Logs automatisch erfasst.
  • Erfassen Sie Logs von Software von Drittanbietern.
  • Untersuchen und analysieren Sie Logs.
  • Mit Log Analytics 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.
  • Erstellen Sie Messwerte aus Logs.
  • Erhalten Sie Benachrichtigungen, wenn eine bestimmte Nachricht in einem Log angezeigt wird.

Error Reporting: Sehen Sie sich Fehler bei der Ausführung von Clouddiensten an und analysieren Sie sie.

  • Aggregieren Sie Fehler, die von Error Reporting in Logeinträgen erkannt werden, und rufen Sie die zugehörigen Logs auf.
  • 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 Ihre Anwendungen durchlaufen.
  • 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.
  • Annotieren Sie Traces mit benutzerdefinierten Attributen.
  • Exportieren Sie Traces nach BigQuery, um sie mit anderen Daten zu untersuchen.

Cloud Profiler: Analysieren Sie die CPU- und Arbeitsspeichernutzung Ihrer Anwendungen, um Möglichkeiten zur Verbesserung der Leistung zu ermitteln.

  • Erfassen Sie Daten zur CPU-Auslastung und Arbeitsspeicherzuweisung aus Ihren Anwendungen.
  • Ermitteln Sie die Teile einer Anwendung, die die meisten Ressourcen beanspruchen, und erhalten Sie Informationen zur Gesamtleistung der Anwendung.

Mehr erfahren

In diesem Abschnitt werden Schritte beschrieben, mit denen Sie sich mit den Beobachtbarkeitsfunktionen 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 erfasste Daten ansehen

Die meisten Google Cloud-Dienste generieren automatisch vordefinierte Messwerte und Logs. Das bedeutet, dass Sie sich ohne zusätzliche Konfiguration einige Beobachtbarkeitsdaten 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 Functions und App Engine generieren automatisch Messwerte, Logs und Traces.

Sie können erfasste Messwerte auch im Metrics Explorer grafisch darstellen, Logs im Log-Explorer aufrufen oder Traces in Trace ansehen. Wenn Sie zusammengehörige Daten prüfen möchten, erstellen Sie benutzerdefinierte Dashboards. Sie können beispielsweise ein Dashboard erstellen, das Logs, Leistungsmesswerte und Benachrichtigungsrichtlinien für virtuelle Maschinen enthält.

Compute Engine-VMs für das Erfassen 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 das Erfassen zusätzlicher Daten konfigurieren

Standardmäßig senden GKE-Cluster Systemlogs 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. Beispielsweise sind Messwerte der Steuerungsebene nützlich, um SLOs zu erstellen, um die Verfügbarkeit und Latenz des Dienstes zu überwachen.
  • Überwachen Sie Anwendungen von Drittanbietern wie Postgres, MongoDB und Redis. Diese Integrationen bieten vorkonfigurierte Dashboards und Benachrichtigungsrichtlinien.

Cloud Run für die Erfassung benutzerdefinierter Daten konfigurieren

Wenn Sie einen Cloud Run-Dienst haben, der Prometheus-Messwerte schreibt, können Sie den Prometheus-Sidecar verwenden, um die Messwerte an Cloud Monitoring zu 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

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

Zur Instrumentierung Ihrer Anwendung empfehlen wir die Verwendung eines anbieterneutralen Instrumentierungs-Frameworks, das als Open Source verfügbar ist, z. B. OpenTelemetry anstelle von anbieter- und produktspezifischen APIs. oder Clientbibliotheken einrichten. 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: