Erweiterte Abrechnungsbenachrichtigungen und -logik einrichten

E‑Mails mit einfachen Budgetbenachrichtigungen sind eine relativ einfache Möglichkeit, Abrechnungsupdates zu erhalten. Es kann jedoch vorkommen, dass Sie komplexere Benachrichtigungen mit einer benutzerdefinierten Logik erstellen möchten. Hier sind zwei Ansätze, die Sie in Betracht ziehen können:

  • Mit Cloud Monitoring können Sie anspruchsvollere und zeitnahere Benachrichtigungen erstellen.

  • Verwenden Sie eine Pub/Sub-Benachrichtigung für die Abrechnung zusammen mit einer entsprechenden Cloud-Funktion, um benutzerdefiniertes Verhalten als Reaktion auf Änderungen bei Ihren Ausgaben zu erstellen.

Beide Techniken erfordern zwar mehr Aufwand, ermöglichen es Ihnen aber, genau zu steuern, welche Arten von Benachrichtigungen Sie erhalten und wie Sie darauf reagieren.

Auf dieser Seite finden Sie eine Übersicht über die einzelnen Ansätze.

Mit Cloud Monitoring anspruchsvollere Benachrichtigungen erstellen

Mit einfachen Budgetbenachrichtigungen per E-Mail werden Sie informiert, wenn Ihre Gesamtabrechnung bestimmte Grenzwerte erreicht hat. Vielleicht möchten Sie aber auch wissen, ob einzelne Dienste unerwartet ansteigen, bevor sie sich erheblich auf Ihr Budget auswirken. Für komplexere Anwendungsfälle wie diesen empfehlen wir, sich mit Cloud Monitoring vertraut zu machen. Cloud Monitoring ist ein Google Cloud-Tool, das für Ihr Firebase-Projekt verfügbar ist.

Cloud Monitoring ist für verschiedene Arten von Benachrichtigungen nützlich:

  • Wenn eine Ressource, auf die Ihr Projekt angewiesen ist, nicht verfügbar ist (sowohl für Firebase- als auch für Google Cloud-Dienste, aber auch für externe Dienste wie AWS)

  • Wenn Dienste wie Cloud Functions länger als erwartet für die Antwort benötigen

  • Wenn Ihr Cloud Storage-Bucket, Ihre Realtime Database-Instanz oder Ihre Cloud Firestore-Instanz zu viele Anfragen ablehnt (ein Hinweis darauf, dass Ihre Firebase Security Rules möglicherweise falsch ist).

  • Wenn die Menge der von einigen Ihrer Firebase-Produkte verwendeten Ressourcen einen bestimmten Grenzwert überschritten hat

Über Cloud Monitoring erstellte Benachrichtigungen werden in der Regel schneller gesendet als einfache E-Mail-Benachrichtigungen zum Budget, die normalerweise einmal täglich gesendet werden. Benachrichtigungen können in Form von SMS-Nachrichten, Slack-Kanalnachrichten, PagerDuty-Benachrichtigungen, Webhooks usw. erfolgen. Mit diesen Optionen können Sie Benachrichtigungen mit höherer und umsetzbarerer Sichtbarkeit senden.

Cloud Monitoring verwenden

Wenn Sie Cloud Monitoring verwenden möchten, empfehlen wir Ihnen, mit dem Metrics Explorer zu beginnen. Damit können Sie Diagramme mit benutzerdefinierten Messwerten in Ihrem Firebase-/Google Cloud-Projekt erstellen und deren Nutzung visualisieren.

Sie können sich insbesondere Ressourcen wie Ihre Cloud Firestore-, Realtime Database- oder Cloud Functions-Instanzen ansehen. Sie können Nutzungsinformationen zu diesen Produkten (z. B. Anzahl der Dokumentlesevorgänge, gesendete Byte oder Funktionsaufrufe) ansehen, die sich auf Ihre Abrechnung auswirken.

Wenn Sie sich mit der Visualisierung Ihrer Ressourcennutzung im Metrics Explorer vertraut gemacht haben, empfehlen wir, eine Benachrichtigungsrichtlinie für die Messwerte zu erstellen, die für Sie am wichtigsten sind. Hier einige Beispiele für Benachrichtigungsrichtlinien:

  • Wenn die Anzahl der Dokumentlesevorgänge in einem Zeitraum von 30 Minuten einen bestimmten Wert überschreitet

  • Wenn die Nutzung einer bestimmten Ressource (z. B. eines Funktionsaufrufs) in einem bestimmten Zeitraum zu schnell zu steigen scheint

Zusätzliche Abrechnungslogik erstellen

Bei Budgetbenachrichtigungen werden automatisch E-Mails gesendet, wenn Ihr Budget bestimmte Grenzwerte erreicht. Für komplexere Benachrichtigungen oder programmatische Reaktionen auf Ausgabensteigerungen können Sie jedoch zusätzliche benutzerdefinierte Logik auf Grundlage von Google Cloud-Pub/Sub-Nachrichten einrichten.

Sie können beispielsweise Benachrichtigungen an Slack-Kanäle oder per SMS senden oder je nach Ausgabenniveau programmatische Änderungen an Ihrer App oder Ihrem Projekt vornehmen.

Pub/Sub ist ein Dienst für die Nachrichtenübermittlung, mit dem andere Dienste Nachrichten senden können – in der Regel in Form von JSON-Daten – und zwar asynchron über Kanäle, die als Pub/Sub-Themen bezeichnet werden. Sie können autorisierte Dienste wie Cloud Functions einrichten, um Nachrichten in diesen Themen zu empfangen und die Daten entsprechend zu verarbeiten.

Pub/Sub-Benachrichtigungen zur Abrechnung werden etwa alle 20 Minuten gesendet, unabhängig davon, ob sich Ihre Abrechnungsnutzung geändert hat. Sie sind zustandslos, d. h., sie enthalten keinen Kontext dazu, was vorher passiert ist. Wenn Sie ungewöhnliche Ausgabensteigerungen im Zeitverlauf im Blick behalten oder Ihre Ausgaben mit dem vorherigen Zyklus vergleichen möchten, müssen Sie diese Verlaufsdaten selbst verwalten, z. B. mit einer Datenbank wie Cloud Firestore oder der Realtime Database.

Pub/Sub-Themen mit Cloud Functions verwenden

Sie können ein Pub/Sub-Thema für Ihre Abrechnungsdaten einrichten, indem Sie in der Google Cloud Console das Budget aufrufen, das mit Ihrem Firebase-Projekt verknüpft ist (unter Abrechnung > Budgets und Benachrichtigungen), und dann das Kästchen für Ein Pub/Sub-Thema mit diesem Budget verbinden anklicken. Dadurch wird ein Thema namens Pub/Sub erstellt, das Sie sich später anhören können. Eine detaillierte Anleitung finden Sie in der vollständigen Dokumentation.

Nachdem Sie das Abrechnungsthema Pub/Sub erstellt haben, können Sie eine Cloud-Funktion schreiben, die dieses Thema überwacht und entsprechend auf die Daten reagiert. Die Daten werden als JSON-Daten gesendet und enthalten hilfreiche Informationen wie den bisher ausgegebenen Betrag, Ihr Budget und das Startdatum des aktuellen Abrechnungszeitraums.

Die Google Cloud-Dokumentation enthält alle Details dazu, wie Sie diese Daten mit einer Cloud-Funktion empfangen. Wenn Sie Cloud Functions for Firebase zum Bereitstellen Ihrer Funktionen verwenden, ist der allgemeine Prozess jedoch etwas einfacher (siehe Firebase-Dokumentation). In diesem Video finden Sie ein Beispiel für den Prozess.

Sobald Sie diese Daten erhalten haben, können Sie auf verschiedene Arten darauf reagieren. Sie haben unter anderem folgende Möglichkeiten: