Einführung in Cloud Monitoring

Diese Seite bietet einen Überblick über die Cloud Monitoring-Tools und -Datenmodelle. Mithilfe von Cloud Monitoring können Sie wichtige Fragen wie die folgenden 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 Messwerte zu Ihrem Dienst und den von Ihnen verwendeten Google Cloud-Ressourcen. In diesem Abschnitt erhalten Sie eine Übersicht über die Cloud Monitoring-Tools, mit denen Sie diese Messungen visualisieren und überwachen können.

Benachrichtigungsrichtlinien und Verfügbarkeitsdiagnosen

Du solltest eine Benachrichtigungsrichtlinie erstellen, damit du informiert wirst, wenn die Leistung eines Diensts nicht die von dir definierten Kriterien erfüllt. Du kannst zum Beispiel eine Benachrichtigungsrichtlinie festlegen, damit das zuständige Team informiert wird, wenn das 90. Perzentil für die Latenz von HTTP-Antworten vom Typ 200 über deinen Dienst 100 ms überschreitet.

Wenn Sie benachrichtigt werden möchten, wenn ein bereitgestellter Dienst nicht zugänglich ist oder nicht korrekt 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 der Diagramme und Dashboards, um die aktuelle Auslastung eines Dienstes zu verstehen oder die Leistungsdaten Ihres Dienstes im vergangenen Monat aufzurufen. 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 von Ihrem Google Cloud-Projekt erfasste (numerische) Messwertdaten grafisch darstellen und überwachen. Dazu gehören:

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

  • System- und Anwendungsmesswerte, die der Cloud Monitoring-Agent erfasst. Diese Messwerte enthalten 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-Webserver oder MongoDB- oder PostgreSQL-Datenbanken erfasst werden.

  • Benutzerdefinierte Messwerte, die Ihr Dienst mit der Cloud Monitoring API oder mit einer Bibliothek wie OpenCensus schreibt.

  • Logbasierte Messwerte, über die numerische Informationen zu den in Cloud Logging geschriebenen Logs erfasst werden. Von Google definierte logbasierte Messwerte beinhalten 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 logbasierte Messwerte auch definieren. Beispiel: Sie können 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:

  • Mit einem Messwert wird ein bestimmtes Element gemessen. Beispiele für Messwerte sind die CPU-Auslastung einer VM und der Prozentsatz eines genutzten Laufwerks.

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

Im folgenden Beispiel wird eine Zeitachse veranschaulicht:

  "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",

    },

Hier sind einige Details zu den Inhalten einer Zeitachse:

  • Das points-Array enthält die Messwerte mit Zeitstempel.

    Im vorherigen Beispiel enthielt das points-Array 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
          }
        },
      ],
    

    Um die Bedeutung eines Werts zu verstehen, müssen Sie die anderen Daten in der Zeitachse und die Definitionen dieser Daten verwenden.

  • Im Feld resource wird die Hardware- oder Softwarekomponente beschrieben, die überwacht wird. 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 der überwachten Ressourcen.

    Im vorherigen Beispiel sieht das resource-Feld so aus:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
    
    • Im type-Feld wird die überwachte Ressource als gce_instance aufgelistet. Dies bedeutet, dass diese Messungen von einer Compute Engine-VM-Instanz stammen.

    • Das Feld labels enthält Schlüssel/Wert-Paare, die zusätzliche Informationen zur überwachten Ressource bereitstellen. Bei einem gce_instance-Typ identifizieren die Labels die überwachte VM-Instanz.

  • Im metric-Feld wird beschrieben, was gemessen wird.

    Im vorherigen Beispiel sieht das metric-Feld 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 und was überwacht wird. In diesem Beispiel ist der Cloud Monitoring-Agent der Dienst, der den verwendeten Prozentsatz des verwendeten Laufwerks misst. Wenn das Feld type mit custom oder external beginnt, ist der Messwert entweder ein benutzerdefinierter Messwert oder einer, der von einem Drittanbieter definiert wird.

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

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

    • GAUGE-Messwerte speichern den Wert eines zu einer bestimmten Zeit gemessenen Elements, z. B. einen stündlichen Temperaturdatensatz.

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

    • DELTA-Messwerte speichern Änderung an den Werten eines Elements, die zu einem bestimmten Zeitraum gemessen wurden, z. B. eine Aktienübersicht, die die Gewinne oder Verluste der Aktie anzeigt.

  • Das valueType-Feld beschreibt den Datentyp für die Messung: INT64, DOUBLE, BOOL, STRING oder DISTRIBUTION.

Cloud Monitoring schreibt für jede Kombination aus Ressourcen- und Messwertlabelwerten eine Zeitachse. Damit können Sie Zeitachsen gruppieren und filtern. Wenn ein Google Cloud-Projekt beispielsweise mehrere Compute Engine-VM-Instanzen enthält, ist die Laufwerksauslastung für jede VM-Instanz eine eindeutige Zeitachse. Im Folgenden finden Sie einige Beispiele, wie Sie diese Daten anzeigen lassen können:

  • Sie können die Laufwerksnutzung pro VM-Instanz anzeigen.
  • Sie können die VM-Instanzen nach dem state-Label gruppieren und dann die durchschnittliche Laufwerksauslastung anzeigen. Folgender Screenshot zeigt ein Diagramm mit dieser Konfiguration:

    Durchschnittliche Laufwerksnutzung, gruppiert nach Zustand.

  • Um die Laufwerksnutzung für eine bestimmte VM-Instanz anzuzeigen, können Sie die Zeitachse nach einem einzelnen Wert des instance_id-Labels filtern. Folgender Screenshot zeigt ein Diagramm mit dieser Konfiguration:

    Prozentuale Auslastung der Festplatte für eine bestimmte Festplatte.

Zeitachse ansehen

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

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

    Wenn ein Google Cloud-Projekt beispielsweise Compute Engine-VM-Instanzen enthält, werden Dashboards für diese VM-Instanzen und -Laufwerke automatisch erstellt. Im Dashboard VM-Instanzen können Sie Details wie Arbeitsspeicher- und Laufwerknutzung, IP-Adressen und VMs sehen, die Netzwerkpakete löschen. Dieses Dashboard enthält auch Informationen zur Nutzung des Cloud Monitoring-Agents sowie Vorschläge zur Instrumentierung.

  • Benutzerdefinierte Dashboards: Sie erstellen oder installieren diese Dashboards. Mit benutzerdefinierten Dashboards können Sie festlegen, welche Daten Sie ansehen möchten und wie diese angezeigt werden. Sie können beispielsweise Messwertdaten, Benachrichtigungsrichtlinien und Logs anzeigen, die in Ihrem Google Cloud-Projekt gespeichert sind. Du kannst Zeitreihendaten in einem Diagramm, auf einem Tachometerdiagramm oder in einer Kurzübersicht oder in Tabellenform darstellen. Dashboards unterstützen auch Textwidgets. Sie können ein benutzerdefiniertes Dashboard mit der Dashboards API oder mit der Cloud Console erstellen.

  • Diagramme: Sie können benutzerdefinierten Dashboards Diagramme hinzufügen oder den Metrics Explorer verwenden, ein Diagrammtool, mit dem Sie schnell Zeitachsendaten grafisch darstellen und untersuchen können. Sie können Diagramme, die mit Metrics Explorer erstellt wurden, in einem benutzerdefinierten Dashboard speichern.

Wenn Sie ein Diagramm erstellen, wählen Sie die überwachte Ressource und den Messwerttyp aus, dessen Zeitachsendaten Sie sich ansehen möchten. Nachdem Sie diese Auswahl getroffen haben, können Sie Filter auf ausgewählte Zeitachsen anwenden, die bestimmten Labelwerten entsprechen. Außerdem können Sie Daten nach Label gruppieren. Sie können beispielsweise einen Filter hinzufügen, sodass in einem Diagramm nur die Zeitachsen für Compute Engine-VM-Instanzen angezeigt werden, die sich in der us-east-1dZone befinden.

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 ein Diagramm, in dem die Anzahl der von einer einzelnen VM gelesenen und geschriebenen Byte angezeigt wird:

Metrics Explorer mit Byte-Lese- und -Schreibbyte.

Weitere Informationen zum Aufrufen von Zeitachsendaten finden Sie unter Dashboards und Diagramme verwenden.

Benachrichtigungen konfigurieren

Mit Benachrichtigungsrichtlinien können Sie konfigurieren, ob eine einzelne Zeitachse die Bedingung erfüllen kann oder ob mehrere Zeitachsen die Bedingung erfüllen müssen, bevor sie erfüllt ist. Benachrichtigungsrichtlinien können einfach oder komplex sein, zum Beispiel:

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

  • Das Bereitschaftsteam benachrichtigen, wenn das 90. Perzentil der HTTP-200-Antworten eine Latenz von 100 ms für drei oder mehr Webserver an zwei Google Cloud-Standorten überschreitet, sofern weniger als 15 QPS auf dem Server vorhanden sind.

  • Ich möchte benachrichtigt werden, wenn die CPU-Auslastung einer VM-Instanz in meinem Google Cloud-Projekt über dem Schwellenwert von 0,6 liegt. Folgender Screenshot veranschaulicht diese Benachrichtigungsrichtlinie:

    Benachrichtigungsrichtlinie, die die CPU-Auslastung überwacht.

Sie können Benachrichtigungsrichtlinien über die Cloud Monitoring API und die Google Cloud Console erstellen. In beiden Fällen kannst du deine Richtlinien in der Google Cloud Console auf der Seite Benachrichtigungen verwalten und ansehen.

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

  • Eine beliebige 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 alle Verfügbarkeitsdiagnosen für die Domain example.com drei Minuten lang fehlschlagen, öffnet Cloud Monitoring einen Vorfall und gibt Benachrichtigungen aus:

  • Ein Vorfall ist ein nichtflüchtiger Datensatz, in dem Informationen zu den überwachten Ressourcen gespeichert werden, wenn die Bedingung erfüllt ist. Wenn die Bedingung nicht mehr erfüllt ist, wird der Vorfall automatisch geschlossen. Mit dem Benachrichtigungs-Dashboard können Sie sich alle Vorfälle ansehen und schließen.
  • Geben Sie an, wer bei der Konfiguration einer Benachrichtigungsrichtlinie benachrichtigt werden soll. Monitoring unterstützt gängige Benachrichtigungskanäle, einschließlich E-Mails, Cloud Mobile Apps und Dienste wie PagerDuty oder Slack. Eine vollständige Liste der Benachrichtigungskanäle findest du unter Benachrichtigungsoptionen.

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

Zugriff des Dienstes prüfen

Sie können Cloud Monitoring so konfigurieren, dass Ihr Dienst regelmäßig so geprüft wird, dass er den Zugriff Ihrer Kunden auf den Dienst nachahmt. Wenn Sie eine Verfügbarkeitsdiagnose konfigurieren, prüfen Server an mindestens drei verschiedenen Standorten regelmäßig Ihren Dienst und zeichnen dann Erfolg und Latenz der Prüfung auf. Erstellen Sie eine Benachrichtigungsrichtlinie, um den Messwert uptime_check/check_passed zu überwachen und die Ergebnisse der Verfügbarkeitsdiagnosen aufzuzeichnen.

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

Beispiel: Detailansicht einer Verfügbarkeitsdiagnose.

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

Unterstützung für großes System

In diesem Abschnitt werden die Features beschrieben, die zum Überwachen großer Systeme entwickelt wurden.

Ressourcengruppen

Wenn Sie Ihre Google Cloud- oder Amazon-Ressourcen als Sammlung verwalten möchten, erstellen Sie eine Ressourcengruppe. Eine Ressourcengruppe ist eine dynamische Sammlung von Ressourcen, die bestimmte von Ihnen angegebene Kriterien erfüllen. Wenn Sie Ressourcen hinzufügen und entfernen, beispielsweise durch Hinzufügen von Compute Engine-VM-Instanzen zu Ihrem Cloud-Projekt, ändert sich die Mitgliedschaft in der Gruppe automatisch. 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 überwachen, als wäre es eine einzelne Ressource. Beispielsweise können Sie eine Verfügbarkeitsdiagnose konfigurieren, um eine Ressourcengruppe zu überwachen. Bei Diagrammen und Benachrichtigungsrichtlinien können Sie auch nach dem Gruppennamen filtern.

Weitere Informationen zu diesem Thema finden Sie unter Ressourcengruppen verwenden.

Messwerte für mehrere Cloud-Projekte ansehen

Wenn Sie die Zeitachsendaten für mehrere Google Cloud-Projekte und AWS-Konten über eine einzige Schnittstelle ansehen und beobachten möchten, konfigurieren Sie einen Messwertbereich für mehrere Projekte.

Standardmäßig bieten Cloud Monitoring-Seiten in der Google Cloud Console nur Zugriff auf die Zeitachsen, die im Umfangprojekt gespeichert sind. Das den Umfang festlegende 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 den Umfang festlegenden Projekt wird auch ein Messwertbereich gehostet. Mit dem Messwertbereich werden die Projekte und Konten definiert, deren Messwerte für das den Umfang festlegende Projekt sichtbar sind. Sie können den Messwertbereich so konfigurieren, dass Zeitreihendaten aus anderen Google Cloud-Projekten und aus AWS-Konten eingeschlossen werden. Informationen zum Ändern eines Messwertbereichs finden Sie unter Cloud Monitoring-Konfiguration Ihres Projekts ändern.

Programmatische und grafische Benutzeroberflächen

In der Google Cloud Console können Sie Ihre Messwertdaten ansehen und Benachrichtigungsrichtlinien, Dashboards und Verfügbarkeitsdiagnosen erstellen und verwalten.

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

Weitere Informationen