Observability 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 liefern. Anwendungszentrierte Beobachtbarkeit bezieht sich auf Tools, mit denen Sie die Telemetriedaten aus der Perspektive einer Anwendung visualisieren und analysieren können.

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

Ein Log ist eine generierte Aufzeichnung von System- oder Anwendungsaktivitäten im Zeitverlauf. Jedes Log ist eine Sammlung von Logeinträgen mit Zeitstempel und jeder Logeintrag beschreibt ein Ereignis zu einem bestimmten Zeitpunkt.

Ein Log enthält oft 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 in 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. Mit Traces können Sie den Ablauf einer Anfrage nachvollziehen und Latenzdaten untersuchen, um die Ursache eines Problems zu ermitteln.

Weitere Daten

Sie können zusätzliche Informationen erhalten, 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 hilft Ihnen dabei,

  • Probleme proaktiv erkennen, bevor sie sich auf Ihre Nutzer auswirken
  • Bekannte und neue Probleme beheben
  • Fehlerbehebung bei Anwendungen während der Entwicklung
  • 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ässigkeitsverfahren, einschließlich der Grundsätze und Verfahren im Zusammenhang mit der 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 sowohl aus Ihren Anwendungen als auch aus der zugrunde liegenden Infrastruktur erfassen, analysieren und korrelieren. Außerdem bieten sie integrierte Standardeinstellungen, damit Ihr Einstieg schneller gelingt, beispielsweise standardmäßige Dashboards für Ihre App Hub-Anwendungen und vorkonfigurierte Benachrichtigungsrichtlinien.

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

Monitoring: Verwenden Sie die erfassten Messwerte, um Zustand und Leistung zu überwachen, Trends und Probleme zu erkennen und Benachrichtigungen bei Verhaltensänderungen zu erhalten.

  • Sie können den Zustand Ihrer App Hub-Anwendungen einsehen.
  • 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 können Sie die Leistung Ihrer Anwendungen testen.
  • Definieren Sie Service Level Objectives (SLOs), um die Zuverlässigkeit von Diensten 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 Observability 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.
  • Messwerte aus Logs erstellen
  • Erhalten Sie Benachrichtigungen, wenn eine bestimmte Nachricht in einem Log angezeigt wird.

Error Reporting: Fehler aus laufenden Cloud-Diensten ansehen und analysieren:

  • Aggregieren Sie Fehler, die von Error Reporting in Logeinträgen erkannt werden, und sehen Sie sich die zugehörigen Logs an.
  • 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.

  • Nachverfolgen, 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.
  • 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 Leistungssteigerung zu ermitteln.

  • 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 einen Überblick über die Gesamtleistung der Anwendung verschaffen.

Jetzt starten

In diesem Abschnitt werden Schritte beschrieben, mit denen Sie sich mit den Funktionen zur Beobachtbarkeit in Google Cloudvertraut 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 Logs. Das bedeutet, dass Sie sich ohne zusätzliche Konfiguration einige beobachtbare Daten für unterstützteGoogle 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, Logs und Traces.

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

Compute Engine-VMs zum 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 die Erfassung zusätzlicher Daten konfigurieren

Standardmäßig senden GKE-Cluster Systemlogs und ‑messwerte 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 Erfassung benutzerdefinierter Daten konfigurieren

Wenn Sie einen Cloud Run-Dienst haben, derPrometheus-Messwerte schreibt, können Sie denPrometheus-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. Mit verschiedenen als Open Source veröffentlichten Instrumentierungs-Frameworks können Sie Messwerte, Logs und Traces aus Ihrer Anwendung erfassen und diese Daten an einen beliebigen Anbieter senden, 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, für die Instrumentierung Ihrer Anwendung ein anbieterneutrales als Open Source veröffentlichtes Instrumentierungs-Framework wie OpenTelemetry anstelle von anbieter- und produktspezifischen APIs oder Clientbibliotheken zu verwenden. Informationen zur Instrumentierung Ihrer Anwendung finden Sie unter Instrumentierung und Beobachtbarkeit.

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

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