Informationen zur Leistungsüberwachung in Firestore im Datastore-Modus

Cloud Monitoring erfasst Messwerte, Ereignisse und Metadaten aus Google Cloud -Produkten. Mit Cloud Monitoring können Sie auch benutzerdefinierte Dashboards und Nutzungsbenachrichtigungen einrichten.

In diesem Dokument erfahren Sie, wie Sie Messwerte verwenden, das Dashboard für benutzerdefinierte Messwerte kennenlernen und Benachrichtigungen einrichten.

Überwachte Ressourcen

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

Mit der Cloud Monitoring API wird die Leistung von Firestore im Datastore-Modus mit den folgenden Ressourcen überwacht:

Ressourcen Beschreibung Unterstützter Datenbankmodus
firestore.googleapis.com/Database (empfohlen) Typ der überwachten Ressource mit Aufschlüsselungen für project, location* und database_id . Das database_id-Label ist (default) für Datenbanken, die ohne einen bestimmten Namen erstellt wurden. Alle Messwerte, die für beide Modi unterstützt werden, mit Ausnahme der folgenden Messwerte, die für Firestore im Datastore-Modus nicht unterstützt werden:
  • document/delete_ops_count
  • document/read_ops_count
  • document/write_ops_count
datastore_request Überwachter Ressourcentyp für Datastore-Projekte, der keine Aufschlüsselung nach Datenbanken enthält.

Messwerte

Firestore ist in zwei verschiedenen Modi verfügbar: Firestore Native und Firestore im Datastore-Modus. Einen Funktionsvergleich dieser beiden Modi finden Sie unter Zwischen Datenbankmodi wählen.

Eine vollständige Liste der Messwerte für den Firestore im Datastore-Modus finden Sie unter Messwerte für Firestore im Datastore-Modus.

Messwerte zur Dienstlaufzeit

Die Messwerte serviceruntime bieten einen allgemeinen Überblick über die Zugriffe eines Projekts. Diese Messwerte sind für die meisten Google Cloud -APIs verfügbar. Der Typ der überwachten Ressource consumed_api enthält diese gängigen Messwerte. Diese Messwerte werden alle 30 Minuten abgetastet, wodurch die Daten geglättet werden.

Ein wichtiges Ressourcenlabel für die serviceruntime-Messwerte ist method. Dieses Label steht für die aufgerufene zugrunde liegende RPC-Methode. Die von Ihnen aufgerufene SDK-Methode muss nicht unbedingt mit der zugrunde liegenden RPC-Methode übereinstimmen. Das liegt daran, dass das SDK eine API-Abstraktion auf höherer Ebene bietet. Wenn Sie jedoch verstehen möchten, wie Ihre Anwendung mit Firestore interagiert, ist es wichtig, die Messwerte anhand des Namens der RPC-Methode zu verstehen.

Informationen zur zugrunde liegenden RPC-Methode einer bestimmten SDK-Methode finden Sie in der API-Dokumentation.

api/request_count

Dieser Messwert gibt die Anzahl der abgeschlossenen Anfragen nach Protokoll(Anfrageprotokoll, z. B. HTTP, gRPC usw.), Antwortcode (HTTP-Antwortcode), response_code_class (Antwortcodeklasse, z. B. 2xx, 4xx usw.) und grpc_status_code (numerischer gRPC-Antwortcode) an. Verwenden Sie diesen Messwert, um die API-Anfrage insgesamt zu beobachten und die Fehlerrate zu berechnen.

Messwert „api/request_count“, der einen 2xx-Code zurückgibt.
Abbildung 1: Messwert „api/request_count“ (zum Vergrößern anklicken)

In Abbildung 1 sind Anfragen zu sehen, die einen 2xx-Code zurückgeben, gruppiert nach Dienst und Methode. 2xx-Codes sind HTTP-Statuscodes, die angeben, dass die Anfrage erfolgreich war.

Messwert „api/request_count“, der einen 2xx-Code zurückgibt.
Abbildung 2: Messwert „api/request_count“, der einen 2xx-Code zurückgibt (zum Vergrößern anklicken)

In Abbildung 2 sind Commits zu sehen, die nach response_code gruppiert sind. In diesem Beispiel sehen wir nur HTTP-Antworten vom Typ 200, was bedeutet, dass die Datenbank in Ordnung ist.

Verwenden Sie die folgenden Messwerte zur Dienstlaufzeit, um Ihre Datenbank zu überwachen.

api/request_count im Ressourcentyp „datastore_request“

Der Messwert api/request_count ist auch unter dem Ressourcentyp datastore_request mit Aufschlüsselungen nach api_method und response_code verfügbar. Verwenden Sie stattdessen diesen Messwert, um von der kürzeren Stichprobenzeit zu profitieren, mit der Spitzen besser erfasst werden können.

Messwert „api/request_count“ unter der Ressource „datastore_request“
Abbildung 3: Messwert „api/request_count“ unter der Ressource „datastore_request“ (zum Vergrößern anklicken)
api/request_latencies

Der Messwert api/request_latencies enthält Latenzverteilungen für alle abgeschlossenen Anfragen.

Firestore erfasst Messwerte aus der Komponente Firestore-Dienst. Latenzmesswerte umfassen den Zeitraum zwischen dem Empfang der Anfrage durch Firestore und dem Senden der Antwort durch Firestore, einschließlich der Interaktionen mit der Speicherebene. Daher ist die RTT (Round-Trip-Latenz) zwischen dem Client und dem Firestore-Dienst nicht in diesen Messwerten enthalten.

api/request_latencies zur Berechnung der Latenzverteilung
Abbildung 4: api/request_latencies zum Berechnen der Latenzverteilung
api/request_sizes und api/response_sizes

Die Messwerte api/request_sizes und api/response_sizes liefern Informationen zur Nutzlastgröße (in Byte). Sie können hilfreich sein, um Schreibarbeitslasten zu verstehen, die große Datenmengen senden oder zu breit gefasste Abfragen sind und große Nutzlasten zurückgeben.

Messwerte „api/request_sizes“ und „api/response_sizes“
Abbildung 5: Messwerte „api/request_sizes“ und „api/response_sizes“ (zum Vergrößern anklicken)

In Abbildung 5 ist eine Heatmap für Antwortgrößen für die Methode RunQuery zu sehen. Die Größen sind gleichmäßig, der Median liegt bei 50 Byte und insgesamt liegen sie zwischen 10 und 100 Byte. Die Nutzlastgrößen werden immer in unkomprimierten Byte gemessen, ohne Übertragungssteuerungsoverhead.

Messwerte zu Entitätsvorgängen

Diese Messwerte liefern die Verteilung der Nutzlastgrößen in Byte für Lesevorgänge (Suchanfragen und Abfragen) und Schreibvorgänge in einer Firestore-Datenbank. Die Werte geben die Gesamtgröße der Nutzlast an. Beispielsweise alle Ergebnisse, die von einer Abfrage zurückgegeben werden. Diese Messwerte ähneln den Messwerten api/request_sizes und api/response_sizes. Der Hauptunterschied besteht darin, dass die Messwerte für den Entitätsvorgang eine detailliertere Stichprobenerhebung, aber weniger detaillierte Aufschlüsselungen bieten.

Für die Messwerte zu Entitätsvorgängen wird beispielsweise die datastore_request überwachte Ressource verwendet, sodass keine Aufschlüsselung nach Dienst oder Methode erfolgt.

  • entity/read_sizes: Verteilung der Größe der gelesenen Entitäten, nach Typ gruppiert.
  • entity/write_sizes: Verteilung der Größe der geschriebenen Entitäten, gruppiert nach Vorgängen.

Indexmesswerte

Die Schreibraten von Indexen können mit dem Messwert document/write_ops_count verglichen werden, um das Index-Fan-out-Verhältnis zu ermitteln.

  • index/write_count: Anzahl der Indexeinträge.
Schreibrate des Index im Vergleich zur Schreibrate des Dokuments
Abbildung 7 Schreibrate des Index im Vergleich zur Schreibrate des Dokuments (zum Vergrößern anklicken)

In Abbildung 7 sehen Sie, wie sich die Schreibrate des Index mit der Schreibrate des Dokuments vergleichen lässt. In diesem Beispiel werden für jeden Dokumentschreibvorgang etwa sechs Indexschreibvorgänge ausgeführt. Das ist eine relativ geringe Indexverzweigungsrate.

TTL-Messwerte

Die TTL-Messwerte sind sowohl für Firestore-Datenbanken im nativen Modus als auch für Firestore-Datenbanken im Datastore-Modus verfügbar. Mit diesen Messwerten können Sie die Auswirkungen der erzwungenen TTL-Richtlinie beobachten.

  • entity/ttl_deletion_count: Gesamtzahl der Entitäten, die von TTL-Diensten gelöscht wurden.
  • entity/ttl_expiration_to_deletion_delays: Zeitspanne zwischen dem Ablauf einer Entität mit einer TTL und dem tatsächlichen Löschen.

    Wenn die TTL-Löschverzögerungen länger als 24 Stunden dauern, wenden Sie sich an den Support.

Nächste Schritte