Datenbankleistung überwachen

Es gibt verschiedene Möglichkeiten, die Leistung Ihrer Firebase Realtime Database zu überwachen und potenzielle Probleme in Ihrer App zu erkennen. Wenn Sie sich die eingehende und ausgehende Bandbreite und Auslastung Ihrer App ansehen, erhalten Sie außerdem eine Vorstellung davon, wie Ihre Rechnung aussehen 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 erfahren Sie mehr über die Realtime Database-Leistungsüberwachung. Informationen zur Überwachung der Nutzung finden Sie unter Datenbanknutzung überwachen.

Realtime Database-Monitoring-Tools verwenden

Je nach gewünschter Detaillierung können Sie Daten zur Leistung Ihrer Realtime Database mit verschiedenen Tools erheben.

Realtime Database-Profiler 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. Sie enthält jedoch keine Verlaufsdaten oder Statistiken zum Verbindungsoverhead und sollte nicht zur Schätzung der Abrechnungskosten verwendet werden.

Weitere Informationen zur Verwendung des Profiler-Tools finden Sie unter Datenbankprofil erstellen.

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üsselungsoverhead) und zur Auslastung Ihrer Datenbank in einminütigen Intervallen. Auf dem Tab Nutzung erhalten Sie zwar einen genaueren Überblick über die Gesamtleistung Ihrer Datenbank, aber möglicherweise können Sie nicht ausreichend aufschlüsseln, um potenzielle Leistungsprobleme zu beheben.

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-Integration mit Cloud Monitoring bietet die höchste Detailgenauigkeit.

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 beobachten

Wenn Probleme mit der Leistung auftreten, z. B. mit der Verfügbarkeit oder Latenz, können Sie mit Cloud Monitoring die folgenden Messwerte überwachen. Alle Messwerttypnamen beginnen mit 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. Wenn die Datenbankauslastung an die gesamte verfügbare Bandbreite herankommt, können Leistungsprobleme auftreten. Außerdem sehen Sie, welche Vorgangstypen die größte Auslastung verursachen, und können entsprechend Fehler beheben. Bei Vorgängen, die länger als eine Minute dauern, kann die gemeldete Auslastung 100% überschreiten. Das passiert, wenn die über mehrere Minuten genutzte Gesamtbandbreite nach Abschluss des Vorgangs in das minutenlange Berichtszeitraum komprimiert wird.

Netzwerk aufgrund von Überschreitungen deaktiviert

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

Speicherplatz für Überschreitungen deaktiviert

storage/disabled_for_overages. Dieser Messwert gibt Aufschluss über Ausfälle, die auftreten können, wenn Ihr Realtime Database Speicherlimits überschreitet.

Kombinieren Sie Messwerte in Diagrammen auf Ihrem Dashboard, um hilfreiche Statistiken und Übersichten zu erhalten. Probieren Sie beispielsweise die folgenden Kombinationen aus:

  • Vorgänge:Mit dem Messwert io/database_load sehen Sie, wie viel Prozent der gesamten Datenbanklast von den einzelnen Vorgangstypen genutzt werden. Gruppieren Sie io/database_load nach Typ, um Probleme mit verschiedenen Vorgangstypen zu beheben.
  • Speicher:Mit 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 Ihre App aufgrund von überschrittenen Speicherlimits ausgefallen ist.
  • SSL-Overhead:Mit network/https_requests_count können Sie überwachen, wie viele SSL-Verbindungsanfragen Ihre Datenbank erhalten hat, und mit dem Filter reused_ssl_session Anfragen herausfiltern, bei denen ein vorhandenes SSL-Sitzungsticket wiederverwendet wurde. Sie können dies anhand der network/sent_bytes_count und network/sent_payload_and_protocol_bytes_count messen, um zu prüfen, ob Ihre App SSL-Sitzungstickets effizient verwendet.

Sie können auch über Cloud Monitoring Benachrichtigungen einrichten und auf Grundlage von Realtime Database-Messwerten Benachrichtigungen erhalten. Sie können beispielsweise festlegen, dass Sie benachrichtigt werden, wenn Ihr io/database_load einen bestimmten Grenzwert erreicht.

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 Auslastung verursacht hat. Die folgenden Arten von Vorgängen werden gemessen:

  • admin: Administratorvorgänge wie das Festlegen von Regeln und das Lesen von Projektmetadaten.
  • auth: Authentifizierung über Dienstkonten oder Firebase Authentication für einen einzelnen Client überprüfen
  • client_management: Hinzufügen und Entfernen gleichzeitiger Verbindungen, einschließlich der Ausführung von Verbindungsunterbrechungen beim Entfernen.
  • get_shallow: Daten über shallow=true aus einem REST GET abrufen
  • get: Umgang mit REST GET-Vorgängen
  • listen: Abrufen der ursprünglichen Daten für on- und once-Vorgänge von verbundenen Clients.
  • on_disconnect: Registrieren von Disconnect-Vorgängen von Clients.
  • put: Verarbeitung 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: Verarbeitung von update-Vorgängen oder REST-PATCH-Anfragen.

Sicherheitsregeln in Cloud Monitoring überwachen

Sie können auch die Bewertung von Sicherheitsregeln analysieren. Hinweis: Allen Messwerttypnamen muss das Präfix firebasedatabase.googleapis.com/ vorangestellt werden.

Messwertname Beschreibung
Regelevaluierungen rules/evaluation_count. Die Anzahl der Realtime Database-Regelauswertungen, 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 das Cloud Monitoring-Diagramm nach Bedarf an die Regelbewertungen an, z. B. indem Sie nach bestimmten Bewertungsergebnissen wie ALLOW, DENY oder ERROR filtern. Informationen zum Einrichten und Anpassen von Diagrammen finden Sie unter Datenbanknutzung überwachen.

Vollständige Liste der Realtime Database-Messwerte, die über Cloud Monitoring verfügbar sind