Check out what’s new from Firebase at Google I/O 2022. Learn more

Richten Sie erweiterte Abrechnungswarnungen und -logik ein

Einfache Budgetbenachrichtigungs-E-Mails sind zwar eine relativ einfache Möglichkeit, Abrechnungsaktualisierungen zu erhalten, es kann jedoch vorkommen, dass Sie anspruchsvollere Benachrichtigungen erstellen möchten, die eine angepasstere Logik enthalten. Hier sind zwei Ansätze zu berücksichtigen:

  • Verwenden Sie Cloud Monitoring, um ausgefeiltere und zeitnahere Warnungen zu erstellen

  • Verwenden Sie eine Pub/Sub-Abrechnungsbenachrichtigung zusammen mit einer entsprechenden Cloud-Funktion, um benutzerdefiniertes Verhalten als Reaktion auf Änderungen Ihrer Ausgaben zu erstellen

Während diese beiden Techniken mehr Arbeit von Ihrer Seite erfordern, geben sie Ihnen die Möglichkeit, genau zu steuern, welche Arten von Warnungen Sie erhalten und wie Sie darauf reagieren.

Diese Seite bietet einen Überblick über jeden dieser Ansätze.

Erstellen Sie mit Cloud Monitoring ausgefeiltere Warnungen

Einfache Budgetbenachrichtigungs-E-Mails informieren Sie, wenn Ihre Gesamtabrechnung bestimmte Schwellenwerte erreicht hat. Es könnte Sie aber auch interessieren, ob einzelne Services unerwartet zunehmen – bevor sie Ihr Budget erheblich belasten. Für anspruchsvollere Anwendungsfälle wie diesen empfehlen wir, sich mit Cloud Monitoring vertraut zu machen, einem Google Cloud-Tool, das für Ihr Firebase-Projekt verfügbar ist.

Cloud Monitoring ist für verschiedene Arten von Warnungen 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 sogar für externe Dienste wie AWS)

  • Wenn Dienste wie Cloud Functions länger als erwartet brauchen, um zu reagieren

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

  • Wenn die von einigen Ihrer Firebase-Produkte verwendete Ressourcenmenge einen bestimmten Schwellenwert überschritten hat

Über Cloud Monitoring erstellte Benachrichtigungen werden in der Regel schneller gesendet als einfache E-Mails mit Budgetbenachrichtigungen, die in der Regel einmal täglich gesendet werden. Benachrichtigungen können in Form von SMS-Nachrichten, Slack-Channel-Nachrichten, PagerDuty-Benachrichtigungen, Webhooks und mehr erfolgen. Mit diesen Optionen können Sie Warnungen mit höheren und umsetzbareren Sichtbarkeitsebenen senden.

Verwenden von Cloud-Monitoring

Um mit Cloud Monitoring zu beginnen, empfehlen wir, mit dem Metrik-Explorer zu beginnen, mit dem Sie Diagramme benutzerdefinierter Metriken in Ihrem Firebase-/Google Cloud-Projekt erstellen und deren Nutzung visualisieren können.

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

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

  • Wenn die Anzahl der Dokumentenlesungen in einem 30-Minuten-Zeitraum größer als ein bestimmter Wert ist

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

Erstellen Sie zusätzliche Abrechnungslogik

Budgetbenachrichtigungen senden automatisch E-Mails, wenn Ihr Budget bestimmte Schwellenwerte erreicht, aber für ausgefeiltere Benachrichtigungen oder programmatische Reaktionen auf Ausgabenerhöhungen sollten Sie die Einrichtung zusätzlicher benutzerdefinierter Logik auf der Grundlage von Google Cloud Pub/Sub-Nachrichten in Betracht ziehen.

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

Pub/Sub ist ein Message-Passing-Dienst, der es anderen Diensten ermöglicht, Nachrichten – normalerweise in Form von JSON-Daten – asynchron über Kanäle zu senden, die als Pub/Sub-Themen bekannt sind. Sie können autorisierte Dienste wie Cloud Functions einrichten, um Nachrichten in diesen Themen abzuhören und entsprechend auf die Daten zu reagieren.

Beachten Sie, dass Pub/Sub-Benachrichtigungen für die Abrechnung etwa alle 20 Minuten gesendet werden, unabhängig davon, ob sich Ihre Abrechnungsnutzung geändert hat, und dass sie zustandslos sind (d. h. sie bieten keinen Kontext zu dem, was ihnen vorausgegangen ist). Wenn Sie ungewöhnliche Ausgabensteigerungen im Laufe der Zeit verfolgen oder Ihre Ausgaben mit dem vorherigen Zyklus vergleichen möchten, müssen Sie diese historischen Daten selbst mit einer Datenbank wie Cloud Firestore oder der Realtime Database verwalten.

Pub/Sub-Themen mit Cloud Functions verwenden

Sie können ein Pub/Sub-Thema für Ihre Abrechnungsdaten einrichten, indem Sie das Ihrem Firebase-Projekt zugeordnete Budget in der Google Cloud Console aufrufen (unter Abrechnung > Budgets und Benachrichtigungen ) und dann das Kontrollkästchen für Pub/Sub-Thema mit diesem Budget verbinden aktivieren . Dadurch wird ein Pub/Sub-Thema erstellt, das Sie sich später anhören können. Detaillierte Schritte finden Sie in der vollständigen Dokumentation .

Nachdem Sie Ihr Pub/Sub-Abrechnungsthema erstellt haben, können Sie eine Cloud-Funktion schreiben, um dieses Thema abzuhören und entsprechend auf die Daten zu reagieren. Die Daten werden als JSON-Daten gesendet und enthalten hilfreiche Informationen wie den Betrag, den Sie bisher ausgegeben haben, Ihren Budgetbetrag und das Startdatum Ihres aktuellen Abrechnungszeitraums.

Die Google Cloud-Dokumentation enthält alle Einzelheiten zum Empfangen dieser Daten mithilfe einer Cloud-Funktion. Wenn Sie jedoch Cloud Functions for Firebase verwenden, um Ihre Funktionen bereitzustellen, ist der allgemeine Prozess etwas einfacher (sehen Sie sich die Firebase-Dokumentation an). Sie können sich auch auf dieses Video beziehen, um eine beispielhafte exemplarische Vorgehensweise des Prozesses zu sehen.

Sobald Sie diese Daten erhalten haben, können Sie auf verschiedene Weise darauf reagieren. Hier sind einige Optionen: