Datenbankleistung überwachen

Es gibt verschiedene Möglichkeiten, die Leistung Ihrer Firebase Realtime Database's zu überwachen 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 überwachen.

Ü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 zur 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 detailliert genug nach potenziellen Leistungsproblemen suchen.

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 überwachen beschrieben.

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

Leistung in Cloud Monitoring überwachen

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

Messwertname Beschreibung
Datenbanklast

io/database_load. Mit diesem Messwert können Sie im Zeitverlauf beobachten, wie viel Ihrer verfügbaren Datenbankbandbreite für die Verarbeitung von Anfragen verwendet wird. Leistungsprobleme können auftreten, wenn sich die Datenbanklast der insgesamt verfügbaren Bandbreite nähert. Sie können auch sehen, welche Vorgangstypen die meiste Last verursachen, und entsprechend Fehler 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. This metric reflects any outages that might have occurred if your Realtime Database exceeded any bandwidth or network limits.

Speicher wegen Überschreitung deaktiviert

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

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 Speicherlimits der Realtime Database überwachen. 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 network/sent_bytes_count und network/sent_payload_and_protocol_bytes_count, um zu sehen, ob Ihre App SSL-Sitzungstickets effizient verwendet.

Sie können auch Benachrichtigungen über Cloud Monitoring einrichten und Benachrichtigungen auf Grundlage von 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: Administratorvorgä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 Dazu gehören auch Vorgänge zum Trennen der Verbindung beim Entfernen.
  • get_shallow: Abrufen der Daten aus einer REST-GET-Anfrage 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 der Verbindung 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 überwachen

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). Informationen zum Einrichten und Anpassen von Diagrammen finden Sie unter Datenbanknutzung überwachen.

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