Datenbanken mit Cloud Monitoring überwachen

Auf dieser Seite wird beschrieben, wie Sie Cloud Monitoring-Messwerte für Firestore mit MongoDB-Kompatibilität verwenden, um Ihre Datenbank zu überwachen.

Cloud Monitoring-Messwerte für Firestore mit MongoDB-Kompatibilität

In den folgenden Abschnitten erhalten Sie einen Überblick über die für Firestore mit MongoDB-Kompatibilität verfügbaren Messwerte.

Überwachte Ressourcen

Eine überwachte Ressource in Cloud Monitoring stellt eine logische oder physische Einheit dar, z. B. eine virtuelle Maschine, eine Datenbank oder eine Anwendung. Überwachte Ressourcen enthalten eine Reihe von Messwerten, die untersucht, in einem Dashboard dargestellt oder zum Erstellen von Benachrichtigungen verwendet werden können. Jede Ressource hat auch eine Reihe von Ressourcenlabels, die Schlüssel/Wert-Paare sind und zusätzliche Informationen zur Ressource enthalten. Ressourcenlabels sind für alle Messwerte verfügbar, die mit der Ressource verknüpft sind.

Mit der Cloud Monitoring API wird die Leistung von Firestore mit MongoDB-Kompatibilität mit der folgenden Ressource überwacht:

Ressourcen Beschreibung
firestore.googleapis.com/Database Typ der überwachten Ressource, der Aufschlüsselungen für project, location und database_id bietet.

Messwerte

Eine vollständige Liste der Messwerte für Firestore finden Sie unter Firestore-Messwerte. Im folgenden Abschnitt werden einige der verfügbaren Messwerte beschrieben.

Laufzeitmesswerte für Dienste

Die serviceruntime-Messwerte bieten einen allgemeinen Überblick über den Traffic eines Projekts. Diese Messwerte sind für die meisten Google Cloud APIs verfügbar. Der überwachte Ressourcentyp consumed_api enthält diese allgemeinen Messwerte. Diese Messwerte werden alle 30 Minuten erhoben, sodass die Daten geglättet werden.

Ein wichtiges Ressourcenlabel für die serviceruntime-Messwerte ist method. Dieses Label steht für die zugrunde liegende RPC-Methode, die aufgerufen wird. Die SDK-Methode, die Sie aufrufen, hat möglicherweise nicht denselben Namen wie die zugrunde liegende RPC-Methode. Der Grund dafür ist, dass das SDK eine API-Abstraktion auf hoher Ebene bietet. Wenn Sie jedoch nachvollziehen möchten, wie Ihre Anwendung mit Firestore interagiert, ist es wichtig, die Messwerte anhand des Namens der RPC-Methode zu verstehen.

Wenn Sie wissen möchten, welche zugrunde liegende RPC-Methode für eine bestimmte SDK-Methode verwendet wird, sehen Sie in der API-Dokumentation nach.

api/request_latencies

Der Messwert api/request_latencies gibt die Latenzverteilungen für alle abgeschlossenen Anfragen an.

Firestore erfasst Messwerte aus der Komponente Firestore-Dienst. Latenzmesswerte umfassen die Zeit, die Firestore benötigt, um die Anfrage zu empfangen, bis Firestore die Antwort gesendet hat, einschließlich der Interaktionen mit der Speicherebene. Aus diesem Grund ist die Round-Trip-Latenz (RTT) zwischen dem Client und dem Firestore-Dienst nicht in diesen Messwerten enthalten.

Messwerte für Dokumentvorgänge

Firestore bietet Zählungen für Lese-, Schreib- und Löschvorgänge. Der Schreibvorgang-Messwert bietet eine Aufschlüsselung zwischen den Vorgängen „CREATE“ und „UPDATE“. Diese Messwerte sind an CRUD-Vorgängen ausgerichtet.

Anhand der folgenden Messwerte können Sie nachvollziehen, ob Ihre Datenbank hauptsächlich zum Lesen oder Schreiben verwendet wird und wie viele neue Dokumente im Vergleich zu gelöschten Dokumenten vorhanden sind.

  • document/delete_ops_count: Die Anzahl der erfolgreichen Dokumentlöschvorgänge.
  • document/read_ops_count: Die Anzahl der erfolgreichen Dokumentlesevorgänge aus Abfragen oder Suchvorgängen.
  • document/write_ops_count: Die Anzahl der erfolgreichen Dokumentschreibvorgänge.

Abrechnungsmesswerte

Mithilfe dieser Messwerte können Sie die Abrechnungsnutzung nachvollziehen. Diese Messwerte enthalten keine Abrechnung für Administratorvorgänge (Indexierung, Import, Export und Bulk-Löschung).

  • api/billable_read_units: Die Anzahl der abrechenbaren Lese-Einheiten. Die Nutzung kann nach Dienstname und API-Methode aufgeschlüsselt werden.

  • api/billable_write_units: Die Anzahl der abrechenbaren Schreibeinheiten. Die Nutzung kann nach Dienstname und API-Methode aufgeschlüsselt werden.

  • document/billable_managed_delete_write_units: Die Anzahl der abrechenbaren Schreibvorgänge von verwalteten Löschdiensten wie TTL.

Indexmesswerte

Die Indexschreibvorgänge können dem Messwert document/write_ops_count gegenübergestellt werden, um den Index-Fanout zu ermitteln.

  • index/write_count: Anzahl der Indexschreibvorgänge.

Messwerte für die TTL

Die TTL-Messwerte für Firestore mit MongoDB-Kompatibilität werden verwendet, um die Auswirkungen der erzwungenen TTL-Richtlinie zu beobachten.

  • document/ttl_deletion_count: Gesamtzahl der von TTL-Diensten gelöschten Dokumente.
  • document/ttl_expiration_to_deletion_delays: Die Zeit, die zwischen dem Ablauf eines Dokuments mit einer TTL und dem tatsächlichen Löschen vergangen ist.

Vordefinierte Dashboards ansehen und benutzerdefinierte Dashboards erstellen

Firestore mit MongoDB-Kompatibilität unterstützt vordefinierte Dashboards, in denen Cloud Monitoring-Messwerte verwendet werden. Sie können auch benutzerdefinierte Dashboards erstellen.

Messwerte zur Datenbanknutzung ansehen

Öffnen Sie die Nutzungs-Dashboards in der Google Cloud Console, um Dokumentlese-, ‑schreib- und ‑löschvorgänge im Zeitverlauf anzusehen.

Zugriffssteuerung

Für die Nutzungs-Dashboards ist die IAM-Berechtigung monitoring.timeSeries.list (Identity and Access Management) erforderlich. Diese Berechtigung ist in den Rollen "Projektinhaber", "Bearbeiter" und "Betrachter" enthalten. Sie können diese Berechtigung auch über eine Cloud Monitoring-Rolle oder eine benutzerdefinierte Rolle gewähren.

Dashboard zur Datenbanknutzung

So rufen Sie Nutzungsmesswerte für eine Firestore-Datenbank mit MongoDB-Kompatibilität auf:

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Nutzung.

Nutzungs-Dashboard und Abrechnungsberichte

Die Firestore-Nutzungsdashboards in der Console liefern eine Schätzung der Nutzung. Sie helfen Ihnen, Nutzungsspitzen zu erkennen. Das Dashboard bietet jedoch keine genaue Ansicht der abgerechneten Vorgänge. Die abgerechnete Nutzung ist wahrscheinlich höher. Informationen zum Überwachen der Abrechnung finden Sie unter Abrechnungsmesswerte.

In allen Fällen einer Abweichung hat der Abrechnungsbericht Vorrang vor dem Nutzungs-Dashboard.

Import- und Exportvorgänge können Abweichungen zwischen dem Nutzungsdashboard und der abgerechneten Nutzung bedingen. Lese- und Schreibvorgänge, die von diesen Vorgängen ausgeführt werden, werden nicht im Nutzungs-Dashboard angezeigt.

Messwerte zur Datenbankleistung ansehen

Die Seite Monitoring im Firestore-Bereich derGoogle Cloud -Konsole enthält vordefinierte Monitoring-Dashboards wie Anfragelatenzen (P50 und P99), Antwortcodes und Abfragestatistiken (P50). Sie können auch ein benutzerdefiniertes Dashboard erstellen. So greifen Sie auf die Seite Monitoring für eine Datenbank zu:

  1. Öffnen Sie in der Google Cloud Console die Firestore-Seite Databases (Datenbanken).

    Zur Seite „Datenbanken“

  2. Wählen Sie eine Datenbank aus der Liste aus.

  3. Klicken Sie im Navigationsmenü auf Monitoring, um ein Dashboard zu öffnen.

Benutzerdefinierte Cloud Monitoring-Dashboards erstellen

In Cloud Monitoring können Sie mit benutzerdefinierten Dashboards relevante Informationen auf eine für Sie geeignete Weise organisieren. Sie können beispielsweise ein Dashboard erstellen, um die Leistungsmesswerte und Benachrichtigungsrichtlinien für Ihr Projekt in Ihrer Produktionsumgebung anzuzeigen.

Weitere Informationen zum Einrichten eines benutzerdefinierten Dashboards finden Sie unter Benutzerdefinierte Dashboards verwalten und Dashboard-Widgets hinzufügen.

Benachrichtigungsrichtlinie erstellen

In Cloud Monitoring können Sie Benachrichtigungen erstellen, um sich benachrichtigen zu lassen, wenn sich eine Messwertbedingung ändert. Sie können diese Benachrichtigungen verwenden, um über potenzielle Probleme informiert zu werden, bevor sie sich auf Ihre Nutzer auswirken.

Weitere Informationen zum Erstellen von Benachrichtigungen finden Sie unter Benachrichtigungsrichtlinien mit Messwertschwellen erstellen.

Im folgenden Beispiel erstellen wir eine Benachrichtigungsrichtlinie für die Latenz. Die Benachrichtigungsrichtlinie prüft die P99-Latenz über ein rollierendes Zeitfenster von 5 Minuten. Wenn die Latenz des 99. Perzentils fünf Minuten lang über 250 ms bleibt, wird die Benachrichtigung ausgelöst.

Konsole

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf und wählen Sie dann  Benachrichtigungen aus.

    Zu Monitoring

  2. Wählen Sie Richtlinie erstellen aus.

  3. Wählen Sie den Messwert Request Latencies (Anfragelatenzen) aus der Ressource Consumed API (Verwendete API) aus.

  4. Fügen Sie einen Dienstfilter für firestore.googleapis.com für Firestore Native-Datenbanken hinzu.

  5. Klicken Sie auf Weiter, um den Trigger zu konfigurieren.

  6. Wählen Sie Schwellenwert als Bedingungstypen aus.

    Für eine Schwellenwertbedingung wird ein Schwellenwert von 250 ms festgelegt. Eine Benachrichtigung wird ausgelöst, wenn der p99-Latenzwert für den gesamten Zeitraum des rollierenden Zeitfensters (5 Minuten) gleich bleibt.

  7. Legen Sie den Grenzwert auf 250 fest.

  8. Klicken Sie auf Weiter, um Benachrichtigungen zu konfigurieren.

  9. Legen Sie den Namen der Benachrichtigungsrichtlinie fest und klicken Sie auf Weiter.

  10. Prüfen Sie die Benachrichtigungskonfigurationen und klicken Sie auf Richtlinie erstellen.

MQL

Sie können dieselbe Latenz-Benachrichtigungsrichtlinie auch mit einer MQL-Abfrage (Monitoring Query Language) implementieren. Weitere Beispiele für die Verwendung von MQL finden Sie unter Beispiel-MQL-Abfragen.

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
    [value_request_latencies_percentile:
      percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'