Einführung in Cloud Monitoring

Auf dieser Seite erhalten Sie einen Überblick über die Tools und das Datenmodell von Cloud Monitoring. Bei Verwendung von Cloud Monitoring können Sie folgende wichtige Fragen beantworten:

  • Wie hoch ist die Last auf meinem Dienst?
  • Ist meine Website zugänglich und reagiert sie korrekt?
  • Läuft mein Dienst gut?

Diese Seite richtet sich an Entwickler und Systemadministratoren, die die Leistung eines Dienstes oder Systems überwachen müssen.

Cloud Monitoring – Übersicht

Cloud Monitoring erfasst Messungen Ihres Dienstes und der von Ihnen verwendeten Google Cloud-Ressourcen. In diesem Abschnitt erhalten Sie einen Überblick über die Cloud Monitoring-Tools, mit denen Sie diese Messungen visualisieren und überwachen können.

Benachrichtigungsrichtlinien und Verfügbarkeitsdiagnosen

Wenn Sie benachrichtigt werden möchten, wenn die Leistung eines Dienstes den von Ihnen definierten Kriterien nicht entspricht, erstellen Sie eine Benachrichtigungsrichtlinie. Sie können beispielsweise eine Benachrichtigungsrichtlinie erstellen, die Ihr Bereitschaftsteam benachrichtigt, wenn das 90. Perzentil der Latenz von HTTP-200-Antworten Ihres Dienstes 100 ms überschreitet.

Wenn Sie benachrichtigt werden möchten, wenn ein bereitgestellter Dienst nicht zugänglich ist oder nicht ordnungsgemäß reagiert, konfigurieren Sie eine Verfügbarkeitsdiagnose und hängen Sie eine Benachrichtigungsrichtlinie an:

  • Die Verfügbarkeitsdiagnose prüft regelmäßig Ihren Dienst und speichert den Erfolg und die Latenz dieser Prüfung als Messwertdaten.
  • Die Benachrichtigungsrichtlinie überwacht den Erfolgsstatus der Verfügbarkeitsdiagnose und benachrichtigt Sie, wenn eine Prüfung fehlschlägt.

Diagramme und Dashboards

Verwenden Sie die Tools Diagramme und Dashboards, um die aktuelle Auslastung eines Dienstes oder die Leistungsdaten des Dienstes für den letzten Monat zu verstehen. Cloud Monitoring füllt für Sie die Dashboards auf der Grundlage der Dienste und Ressourcen auf, die Ihr Dienst nutzt. Sie können jedoch auch benutzerdefinierte Dashboards erstellen, um Daten im Diagramm, Indikatoren oder Text anzuzeigen.

Sie können beliebige numerische Messwertdaten, die Ihr Google Cloud-Projekt erfasst, als Diagramm darstellen und überwachen:

  • Von Google Cloud-Diensten generierte Systemmesswerte. Diese Messwerte enthalten Informationen zur Funktionsweise des Dienstes. Zum Beispiel gibt Compute Engine mehr als 25 eindeutige Messwerte für jede VM-Instanz an. Eine vollständige Liste der Messwerte finden Sie unter Google Cloud-Messwerte.

  • System- und Anwendungsmesswerte, die der Cloud Monitoring-Agent erfasst. Diese Messwerte bieten zusätzliche Informationen zu Systemressourcen und -anwendungen, die auf Compute Engine-Instanzen und auf Amazon Elastic Compute Cloud-Instanzen (Amazon EC2) ausgeführt werden. Optional können Sie den Agent so konfigurieren, dass Messwerte von Drittanbieter-Plug-ins wie Apache- oder Nginx-Webservern oder MongoDB- oder PostgreSQL-Datenbanken erfasst werden.

  • Benutzerdefinierte Messwerte, die von Ihrem Dienst mit der Cloud Monitoring API oder mithilfe einer Bibliothek wie OpenCensus geschrieben werden.

  • Logbasierte Messwerte, die numerische Informationen zu den in Cloud Logging geschriebenen Logs erfassen. Zu den von Google definierten logbasierten Messwerten gehören die Anzahl der Fehler, die Ihr Dienst erkennt, und die Gesamtzahl der Logeinträge, die von Ihrem Google Cloud-Projekt empfangen wurden. Sie können auch logbasierte Messwerte definieren. Sie können z. B. einen Messwert erstellen, der die Anzahl der 404 Not Found-Fehler für eine in App Engine bereitgestellte Anwendung zählt.

Messwerte und Zeitachsen

In diesem Abschnitt wird das Cloud Monitoring-Datenmodell vorgestellt:

  • Messwert beschreibt ein gemessenes Element. Beispiele für Messwerte sind die CPU-Auslastung einer VM und der Prozentsatz des verwendeten Laufwerks.

  • Eine Zeitachse ist eine Datenstruktur, die mit Zeitstempeln versehene Messungen eines Messwerts und Informationen über die Quelle und Bedeutung dieser Messungen enthält.

Nachstehend sehen Sie zum Beispiel eine Zeitachse:

  "timeSeries": [
    {
      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      },
      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",

    },

Im Folgenden sind einige Informationen zu einer Zeitachse aufgeführt:

  • Das Array points enthält die Zeitstempel.

    Im vorherigen Beispiel enthält das Array points zwei Werte:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    Wenn Sie die Bedeutung eines Werts verstehen möchten, müssen Sie die anderen in der Zeitachse enthaltenen Daten und die Definitionen dieser Daten verwenden.

  • Im Feld resource wird die überwachte Hardware- oder Softwarekomponente beschrieben. In Cloud Monitoring wird die Hardware- oder Softwarekomponente als überwachte Ressource bezeichnet. Beispiele für überwachte Ressourcen sind Compute Engine-Instanzen und App Engine-Anwendungen. Eine vollständige Liste der überwachten Ressourcen finden Sie in der Liste überwachter Ressourcen.

    Im vorherigen Beispiel sieht das Feld resource so aus:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
    
    • Das Feld type listet die überwachte Ressource als gce_instance auf. Dies bedeutet, dass diese Messungen auf einer Compute Engine-VM-Instanz durchgeführt werden.

    • Das Feld labels enthält Schlüssel/Wert-Paare mit zusätzlichen Informationen zur überwachten Ressource. Bei einem gce_instance-Typ geben die Labels die VM-Instanz an, die überwacht wird.

  • Im Feld metric wird beschrieben, was gemessen wird.

    Im vorherigen Beispiel sieht das Feld metric so aus:

      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
    
    • Bei Google-Diensten wird im Feld type der Dienst angegeben. In diesem Beispiel ist der Cloud Monitoring-Agent der Dienst und misst den Prozentsatz des verwendeten Laufwerks. Wenn das Feld type mit custom oder external beginnt, ist der Messwert entweder ein benutzerdefinierter Messwert oder ein von einem Drittanbieter definierter Messwert.

    • Das Feld labels enthält Schlüssel/Wert-Paare mit zusätzlichen Informationen zur Messung. Diese Labels werden als Teil von MetricDescriptor definiert. Dies ist eine Datenstruktur, die die Attribute der gemessenen Daten definiert. Der MetricDescriptor für den Messwert agent.googleapis.com/disk/percent_used enthält die Labels device und state.

  • Das Feld metricKind beschreibt die Beziehung zwischen engen Messungen innerhalb einer Zeitachse:

    • GAUGE-Messwerte speichern den Wert des etwas, das zu einem bestimmten Zeitpunkt gemessen wird, z. B. ein stündlicher Temperaturdatensatz.

    • In CUMULATIVE-Messwerten wird der kumulierte Wert des Objekts gespeichert, das zu einem bestimmten Zeitpunkt gemessen wurde, z. B. der Kilometerstand in einem Fahrzeug.

    • DELTA-Messwerte speichern die Änderung des Werts, der über einen bestimmten Zeitraum gemessen wird, z. B. eine Zusammenfassung der Aktien, die die Gewinne oder Verluste der Aktie zeigt.

  • Die SeitevalueType Feld beschreibt den Datentyp für die Messung: INT64 ,DOUBLE ,BOOL ,STRING oderDISTRIBUTION auf.

Cloud Monitoring schreibt für jede Kombination aus Ressourcen- und Messwertlabelwerten eine Zeitachse. Sie können diese Labels verwenden, um Zeitachsen zu gruppieren und zu filtern. Wenn Sie beispielsweise ein Google Cloud-Projekt mit mehreren Compute Engine-VM-Instanzen haben, ist die Laufwerksauslastung für jede VM-Instanz eine eindeutige Zeitachse. Im Folgenden finden Sie einige Möglichkeiten zur Darstellung dieser Daten:

  • Sie können die Speicherauslastung jeder VM-Instanz anzeigen.
  • Sie können nach VM-Instanzen nach dem Label state gruppieren und anschließend die durchschnittliche Laufwerkauslastung anzeigen. Der folgende Screenshot zeigt ein Diagramm mit dieser Konfiguration:

    Durchschnittliche Laufwerksnutzung, gruppiert nach Zustand.

  • Sie können die Laufwerksauslastung einer bestimmten VM-Instanz anzeigen lassen. Dazu filtern Sie die Zeitachse nach einem einzelnen Wert des Labels instance_id. Der folgende Screenshot zeigt ein Diagramm mit dieser Konfiguration:

    Prozentuale Auslastung der Festplatte für eine bestimmte Festplatte.

Zeitachsendaten mit Diagrammen und Dashboards aufrufen

Cloud Monitoring bietet Ihnen mehrere Möglichkeiten, Zeitachsendaten zu visualisieren:

  • Vordefinierte Dashboards: Cloud Monitoring erstellt diese Dashboards anhand der von Ihrem Google Cloud-Projekt verwendeten Ressourcen automatisch.

    Wenn Ihr Google Cloud-Projekt beispielsweise Compute Engine-VM-Instanzen enthält, werden automatisch Dashboards für diese VM-Instanzen und Laufwerke erstellt. Im Dashboard VM-Instanzen können Sie Details wie Speicher- und Laufwerksauslastung ansehen, IP-Adressen identifizieren und ermitteln, welche VMs Netzwerkpakete verwerfen. In diesem Dashboard finden Sie auch Informationen zu Ihrer Nutzung des Cloud Monitoring-Agents und Vorschläge für Instrumentierung.

  • Benutzerdefinierte Dashboards: Sie erstellen oder installieren Sie diese Dashboards. Mit benutzerdefinierten Dashboards können Sie definieren, welche Daten Sie aufrufen und wie diese Daten angezeigt werden. In Ihren Dashboards können Sie Widgets hinzufügen, um Diagramme, Text, Anzeigewerte oder Kurzübersichten anzeigen zu lassen. Sie können ein benutzerdefiniertes Dashboard mit der Dashboards API oder mit der Cloud Console erstellen.

  • Diagramme: Sie können einem benutzerdefinierten Dashboard Diagramme hinzufügen oder den Metrics Explorer verwenden, ein Diagramm-Tool, mit dem Sie Zeitachsendaten schnell darstellen und erkunden können. Wenn Sie ein Diagramm mit dem Metrics Explorer erstellen, können Sie es in einem benutzerdefinierten Dashboard speichern .

Beim Erstellen eines Diagramms wählen Sie die überwachte Ressource und den Messwerttyp aus, dessen Zeitachsendaten Sie anzeigen möchten. Nachdem Sie diese Auswahl getroffen haben, können Sie Filter anwenden, um Zeitachsen auszuwählen, die mit bestimmten Labelwerten übereinstimmen, und Daten nach Label gruppieren. Sie können beispielsweise einen Filter hinzufügen, damit in einem Diagramm nur die Zeitachsen für Compute Engine-VM-Instanzen angezeigt werden, die sich imus-east-1d Zone auf.

Mit den Diagrammeinstellungen können Sie aktuelle Daten mit vorherigen Daten vergleichen und Diagramme erstellen, die Zeitachsendaten für mehrere Messwerte anzeigen. Der folgende Screenshot zeigt beispielsweise ein Diagramm, in dem die Anzahl der Byte angezeigt wird, die von einer einzelnen VM gelesen und geschrieben werden:

Der Metrics Explorer zeigt Lese- und Schreibbyte des Laufwerks an.

Weitere Informationen zu Zeitachsendaten finden Sie unter Dashboards und Diagramme verwenden.

Benachrichtigungen konfigurieren

Wenn Sie eine Benachrichtigungsrichtlinie erstellen, können Sie benachrichtigt werden, wenn eine einzelne Zeitachse eine bestimmte Bedingung erfüllt oder wenn mehrere Zeitachsen diese Bedingung erfüllen. Benachrichtigungsrichtlinien können einfach oder komplex sein. Beispiele:

  • Ich möchte benachrichtigt werden, wenn eine Verfügbarkeitsdiagnose für die Domain example.com für mindestens 3 Minuten ausfällt.

  • Benachrichtigen Sie das Bereitschaftsteam, wenn das 90. Perzentil von HTTP-200-Antworten von 3 oder mehr Webservern an zwei verschiedenen Google Cloud-Standorten die Antwortlatenz von 100 ms überschreitet, sofern sie vorhanden sind. kleiner als 15 Abfragen pro Sekunde.

  • Ich möchte benachrichtigt werden, wenn die CPU-Auslastung von VM-Instanzen in meinem Google Cloud-Projekt den Schwellenwert von 0,6 überschreitet. Der folgende Screenshot zeigt diese Benachrichtigungsrichtlinie:

    Benachrichtigungsrichtlinie, die die CPU-Auslastung überwacht.

Sie können Benachrichtigungsrichtlinien mit der Cloud Monitoring API und der Google Cloud Console erstellen. In beiden Fällen können Sie Ihre Richtlinien in der Google Cloud Console auf der Seite Benachrichtigungen verwalten und aufrufen.

Bedingungen sind die Kernkomponente einer Benachrichtigungsrichtlinie. Eine Bedingung beschreibt ein potenzielles Problem mit Ihrem System, das Cloud Monitoring überwachen soll. Sie können beispielsweise Bedingungen wie die folgenden beschreiben:

  • Jede Verfügbarkeitsdiagnose für die Domain example.com schlägt für mindestens drei Minuten fehl.
  • Der freie Platz einer überwachten VM-Instanz beträgt weniger als 10 %.

Wenn die Bedingungen einer Benachrichtigungsrichtlinie erfüllt sind, z. B. wenn jede Verfügbarkeitsdiagnose für die Domain example.com drei Minuten fehlschlägt, öffnet Cloud Monitoring einen Vorfall und gibt Benachrichtigungen aus:

  • Ein Vorfall ist ein nichtflüchtiger Eintrag, in dem Informationen zu den überwachten Ressourcen gespeichert werden, wenn die Bedingung erfüllt ist. Wenn die Bedingung nicht mehr erfüllt wird, wird der Vorfall automatisch geschlossen. Sie können alle offenen und geschlossenen Vorfälle im Benachrichtigungs-Dashboard ansehen.
  • Geben Sie an, wer benachrichtigt werden soll, wenn Sie eine Benachrichtigungsrichtlinie konfigurieren. Monitoring unterstützt gängige Benachrichtigungskanäle, einschließlich E-Mail, Cloud Mobile App und Diensten wie PagerDuty oder Slack. Eine vollständige Liste der Benachrichtigungskanäle finden Sie unter Benachrichtigungsoptionen.

Weitere Informationen zu Benachrichtigungsrichtlinien finden Sie unter Einführung in Benachrichtigungen.

Prüfen, ob Ihr Dienst erreichbar ist

Sie können Cloud Monitoring so konfigurieren, dass Ihr Dienst regelmäßig so überprüft wird, dass er den Zugriff von Kunden auf den Dienst simuliert. Wenn Sie eine Verfügbarkeitsdiagnose konfigurieren, prüfen Server an mindestens drei verschiedenen Standorten Ihren Dienst und erfassen Erfolg und Latenz der Prüfung. Wenn Sie benachrichtigt werden möchten, wenn die Verfügbarkeitsdiagnose fehlschlägt, können Sie eine Benachrichtigungsrichtlinie erstellen, um den Messwert uptime_check/check_passed zu überwachen, der die Ergebnisse der Verfügbarkeitsdiagnose speichert. Schecks.

Cloud Monitoring bietet eine Seite mit Verfügbarkeitsdiagnosen, die eine Zusammenfassung Ihrer Verfügbarkeitsdiagnosen anzeigt. Sie können die Anzeige filtern und die eingebetteten Links verwenden, um Details zu einer bestimmten Verfügbarkeitsdiagnose aufzurufen. Die Detailansicht einer Verfügbarkeitsdiagnose gibt den Erfolg oder Misserfolg der Antwort und die Latenz der Antwort sowie Details zur Verfügbarkeitsdiagnose an:

Beispieldetailansicht einer Verfügbarkeitsdiagnose

Weitere Informationen zu diesem Thema finden Sie unter Verfügbarkeitsdiagnosen verwalten.

Große Systeme überwachen

In diesem Abschnitt werden Features beschrieben, die Sie zum Monitoring großer Systeme unterstützen.

Ressourcengruppen

Wenn Sie Ihre Google Cloud- oder Amazon-Ressourcen als Sammlung statt einzeln verwalten möchten, können Sie eine Ressourcengruppe erstellen. Eine Ressourcengruppe ist eine dynamische Sammlung von Ressourcen, die bestimmte Kriterien erfüllen. Wenn Sie Ressourcen hinzufügen und entfernen, indem Sie dem Cloud-Projekt beispielsweise Compute Engine-VM-Instanzen hinzufügen, ändert sich die Mitgliedschaft in der Gruppe automatisch. Im Folgenden finden Sie Beispiele für Ressourcengruppen:

  • Compute Engine-Instanzen, deren Namen mit dem String prod- beginnen.
  • Ressourcen mit dem Tag test-cluster.
  • Amazon EC2-Instanzen in Region A oder Region B.

Nachdem Sie eine Ressourcengruppe definiert haben, können Sie die Gruppe so überwachen, als wäre sie eine einzelne Ressource. Beispielsweise können Sie eine Verfügbarkeitsdiagnose konfigurieren, um eine Ressourcengruppe zu überwachen. Bei Diagrammen und Benachrichtigungsrichtlinien können Sie auch basierend auf dem Gruppennamen filtern.

Weitere Informationen zu diesem Thema finden Sie unter Ressourcengruppen verwenden.

Messwerte für mehrere Google Cloud-Projekte aufrufen

Wenn Sie die Zeitachsendaten für mehrere Google Cloud-Projekte und AWS-Konten über eine einzige Schnittstelle anzeigen und überwachen möchten, können Sie einen Projektumfang für mehrere Projekte konfigurieren.

Standardmäßig bieten Cloud Monitoring-Seiten in der Google Cloud Console nur Zugriff auf die Zeitachsen, die im Scoring-Projekt gespeichert sind. Das kopierte Projekt ist das Projekt, das Sie mit der Projektauswahl in der Cloud Console ausgewählt haben. Im Scoping-Projekt werden die Benachrichtigungen, Verfügbarkeitsdiagnosen, Dashboards und Monitoring-Gruppen gespeichert, die Sie konfigurieren.

Im Umfangsbereich wird auch ein Messwertbereich gehostet. Der Messwertbereich definiert die Projekte und Konten, deren Messwerte für das Bereichsprojekt sichtbar sind. Sie können den Messwertbereich so konfigurieren, dass Zeitachsendaten aus anderen Google Cloud-Projekten und AWS-Konten einbezogen werden. Weitere Informationen zum Ändern eines Messwertbereichs finden Sie unter Cloud Monitoring-Konfiguration für Ihr Projekt ändern.

Programmatische und grafische Schnittstellen verwenden

Zur Anzeige Ihrer Messwertdaten und zum Erstellen und Verwalten von Benachrichtigungsrichtlinien, Dashboards und Verfügbarkeitsdiagnosen können Sie die Google Cloud Console verwenden.

Sie können die Cloud Monitoring API auch direkt verwenden, um benutzerdefinierte Messwertdaten zu schreiben und Benachrichtigungsrichtlinien, Dashboards und Verfügbarkeitsdiagnosen zu erstellen und zu verwalten. Referenzseiten der Cloud Monitoring API, wie die Seite alertPolicies.list, ermöglichen Ihnen, API-Aufrufe direkt von der Referenzseite aus zu testen.

Nächste Schritte