Datenbankleistung überwachen

Es gibt verschiedene Möglichkeiten, die Leistung Ihrer Firebase Realtime Database's zu beobachten und potenzielle Probleme in Ihrer App zu erkennen. Wenn Sie sich die eingehende und ausgehende Bandbreite und die Last Ihrer App ansehen, können Sie auch einschätzen, was in Rechnung gestellt wird. Darüber hinaus kann es hilfreich sein, sich damit bei möglichen Problemen ein genaues Bild von den Vorgängen in einer Datenbank zu machen.

Auf dieser Seite wird die Leistungsüberwachung von Realtime Database behandelt. Informationen zur Nutzung überwachung finden Sie unter Datenbanknutzung beobachten.

Überwachungstools verwendenRealtime Database

Je nach gewünschtem Detaillierungsgrad können Sie mit verschiedenen Tools Daten zur Leistung Ihrer Realtime Database's erfassen.

Profiler-Tool für Realtime Database verwenden

Das Realtime Database Profiler-Tool bietet eine Echtzeitübersicht über Lese-/Schreibvorgänge in Ihrer Datenbank. Der Bericht enthält Informationen zu Geschwindigkeit und Nutzlastgröße der einzelnen Vorgänge sowie zu nicht indexierten Abfragen. Er enthält jedoch keine Verlaufsdaten oder Statistiken zum Verbindungs- Overhead und sollte nicht zur Schätzung von Abrechnungskosten verwendet werden.

Weitere Informationen zur Verwendung des Profiler-Tools finden Sie unter Datenbank profilieren.

Firebase Konsole verwenden

Auf dem Tab Nutzung in der Firebase Konsole finden Sie Informationen zu gleichzeitigen Verbindungen zu Ihrer Datenbank, zur Menge der gespeicherten Daten, zur ausgehenden Bandbreite (einschließlich Protokoll- und Verschlüsselungs- Overhead) und zur Last Ihrer Datenbank in Intervallen von einer Minute. Auf dem Tab Nutzung erhalten Sie zwar einen genaueren Überblick über die Gesamtleistung Ihrer Datenbank, aber Sie können möglicherweise nicht so detailliert vorgehen, dass Sie potenzielle Leistungsprobleme beheben können.

Cloud Monitoring verwenden

Mit Cloud Monitoring von Google Cloud können Sie im Metrics Explorer einzelne Leistungsmesswerte aufrufen oder verschiedene Dashboards mit Diagrammen erstellen, in denen verschiedene Kombinationen von Leistungsmesswerten im Zeitverlauf dargestellt werden. Die Realtime Database Einbindung in Cloud Monitoring bietet den höchsten Detaillierungsgrad.

Die Schritte zum Einrichten von Cloud Monitoring werden unter Datenbanknutzung beobachten beschrieben.

In den folgenden Abschnitten finden Sie Tipps zur Verwendung bestimmter Cloud Monitoring Messwerte, um Leistungsprobleme zu erkennen.

Leistung in Cloud Monitoring beobachten

Wenn Probleme mit der Leistung auftreten, z. B. mit der Verfügbarkeit oder Latenz, können Sie mit Cloud Monitoring die folgenden Messwerte beobachten. Alle Messwerttypnamen haben das Präfix firebasedatabase.googleapis.com/.

Messwertname Beschreibung
Datenbanklast

io/database_load. Mit diesem Messwert können Sie beobachten, wie viel Ihrer verfügbaren Datenbankbandbreite im Zeitverlauf für die Verarbeitung von Anfragen verwendet wird. Leistungsprobleme können auftreten, wenn sich die Datenbanklast der gesamten verfügbaren Bandbreite nähert. Sie können auch sehen, welche Vorgangstypen die meiste Last verursachen, und die Probleme entsprechend beheben. Die gemeldete Last kann bei Vorgängen , die länger als eine Minute dauern, 100% übersteigen. Das passiert, wenn die über mehrere Minuten verwendete Gesamtbandbreite nach Abschluss des Vorgangs in das einminütige Berichtsintervall komprimiert wird.

Netzwerk wegen Überschreitung deaktiviert

network/disabled_for_overages. Dieser Messwert gibt alle Ausfälle an, die aufgetreten sind, weil Ihre Realtime Database Bandbreiten- oder Netzwerk limits überschritten hat.

Speicher wegen Überschreitung deaktiviert

storage/disabled_for_overages. Dieser Messwert gibt alle Ausfälle an, die aufgetreten sind, weil Ihre Realtime Database Speicherlimits überschritten hat.

Kombinieren Sie Messwerte in Diagrammen auf Ihrem Dashboard, um hilfreiche Statistiken und Übersichten zu erhalten. Hier einige Beispiele:

  • Vorgänge:Mit dem Messwert io/database_load können Sie sehen, wie viel der Gesamtlast Ihrer Datenbank von den einzelnen Vorgangstypen verursacht wird. Gruppieren Sie io/database_load nach Typ, um Probleme mit verschiedenen Vorgangstypen zu beheben.
  • Speicher: Mit den Messwerten storage/limit und storage/total_bytes können Sie die Speichernutzung im Verhältnis zu den Realtime Database Speicherlimits beobachten. Sie können auch storage/disabled_for_overages hinzufügen, um zu sehen, ob es aufgrund überschrittener Speicherlimits zu Ausfallzeiten Ihrer App gekommen ist.
  • SSL-Overhead: Mit network/https_requests_count können Sie beobachten, wie viele SSL-Verbindungsanfragen Ihre Datenbank erhalten hat. Mit dem Filter reused_ssl_session können Sie Anfragen herausfiltern, bei denen ein vorhandenes SSL-Sitzungsticket wiederverwendet wurde. Vergleichen Sie diesen Wert mit dem network/sent_bytes_count und network/sent_payload_and_protocol_bytes_count, um zu beobachten, ob Ihre App SSL-Sitzungstickets effizient verwendet.

Sie können auch Benachrichtigungen über Cloud Monitoring einrichten und Benachrichtigungen basierend auf Realtime Database Messwerten erhalten. Sie können sich beispielsweise benachrichtigen lassen, wenn sich io/database_load einem bestimmten Schwellenwert nähert.

Hier finden Sie die vollständige Liste der Realtime Database Messwerte, die über Cloud Monitoring verfügbar sind.

Arten der Datenbanklast

Der Messwert io/database_load enthält auch ein Label, das angibt, welcher Vorgangstyp die Last verursacht hat. Folgende Vorgangstypen werden gemessen:

  • admin: Verwaltungsvorgänge wie das Festlegen von Regeln und das Lesen von Projektmetadaten.
  • auth: Überprüfen der Authentifizierung von Dienstkonten oder Firebase Authentication für einen einzelnen Client.
  • client_management: Hinzufügen und Entfernen gleichzeitiger Verbindungen einschließlich des Ausführens von Trennungsvorgängen beim Entfernen.
  • get_shallow: Abrufen der Daten aus einem REST-GET mit shallow=true.
  • get: Verarbeiten von REST-GET-Vorgängen.
  • listen: Abrufen der ersten Daten für on und once Vorgänge von verbundenen Clients.
  • on_disconnect: Registrieren von Vorgängen zum Trennen von Clients.
  • put: Verarbeiten von set-Vorgängen von Clients oder REST-PUT-Vorgängen.
  • transaction: Ausführen von Transaktionen aus bedingten REST-Anfragen oder einem transaction Vorgang von einem Client.
  • update: Verarbeiten von update-Vorgängen oder REST-PATCH-Anfragen.

Sicherheitsregeln in Cloud Monitoring beobachten

Sie können auch die Auswertung von Sicherheitsregeln analysieren. Alle Messwerttypnamen haben das Präfix firebasedatabase.googleapis.com/.

Messwertname Beschreibung
Regelevaluierungen rules/evaluation_count. Die Anzahl der Evaluierungen von Realtime Database-Regeln, die als Reaktion auf Schreib- oder Leseanfragen ausgeführt werden. Sie können diesen Messwert nach dem Ergebnis der Anfrage aufschlüsseln (ALLOW, DENY oder ERROR).

Passen Sie Ihr Cloud Monitoring Diagramm für Regelevaluierungen nach Bedarf an, z. B. indem Sie nach bestimmten Auswertungsergebnissen filtern: ALLOW, DENY oder ERROR. Das Einrichten und Anpassen von Diagrammen wird unter Datenbanknutzung beobachten beschrieben.

Hier finden Sie die vollständige Liste der Realtime Database Messwerte, die über Cloud Monitoring verfügbar sind.