查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

Imposta avvisi e logica di fatturazione avanzati

Sebbene le semplici e-mail di avviso sul budget siano un modo relativamente semplice per ricevere aggiornamenti di fatturazione, a volte potresti voler creare avvisi più sofisticati che includono una logica più personalizzata. Ecco due approcci da considerare:

  • Usa Cloud Monitoring per creare avvisi più sofisticati e tempestivi

  • Utilizza una notifica Pub/Sub di fatturazione insieme a una funzione cloud corrispondente per creare un comportamento personalizzato in risposta ai cambiamenti nella tua spesa

Sebbene entrambe queste tecniche richiedano più lavoro da parte tua, ti danno il potere di controllare esattamente quali tipi di avvisi stai ricevendo e come rispondervi.

Questa pagina offre una panoramica di ciascuno di questi approcci.

Crea avvisi più sofisticati con Cloud Monitoring

Semplici email di avviso sul budget ti informano quando la tua fatturazione complessiva ha raggiunto determinate soglie. Tuttavia, potresti anche essere interessato a sapere se i singoli servizi stanno aumentando in modo imprevisto, prima che abbiano avuto la possibilità di incidere in modo significativo sul tuo budget. Per casi d'uso più sofisticati come questo, ti consigliamo di conoscere Cloud Monitoring, uno strumento Google Cloud disponibile per il tuo progetto Firebase.

Cloud Monitoring è utile per diversi tipi di avvisi:

  • Se una risorsa su cui fa affidamento il tuo progetto non è disponibile (sia per i servizi Firebase che per Google Cloud, ma anche per servizi esterni, come AWS)

  • Se servizi come Cloud Functions impiegano più tempo del previsto per rispondere

  • Se il bucket di Cloud Storage, l'istanza di database in tempo reale o l'istanza di Cloud Firestore rifiuta troppe richieste (un'indicazione che le regole di sicurezza di Firebase potrebbero non essere corrette).

  • Se la quantità di risorse utilizzate da alcuni dei tuoi prodotti Firebase è aumentata oltre una determinata soglia

Gli avvisi creati tramite Cloud Monitoring vengono generalmente inviati più rapidamente rispetto alle semplici e-mail di avviso sul budget, che in genere vengono inviate una volta al giorno. Gli avvisi possono assumere la forma di messaggi SMS, messaggi del canale Slack, notifiche PagerDuty, webhook e altro ancora. Queste opzioni ti consentono di inviare avvisi con livelli di visibilità più elevati e più attuabili.

Utilizzo del monitoraggio cloud

Per iniziare con Cloud Monitoring, ti consigliamo di iniziare con Metrics Explorer , che ti consente di creare grafici di metriche personalizzate all'interno del tuo progetto Firebase/Google Cloud e di visualizzarne l'utilizzo.

In particolare, puoi esaminare risorse come le tue istanze Cloud Firestore, Realtime Database o Cloud Function. È possibile visualizzare le informazioni sull'utilizzo di questi prodotti (come il numero di letture di documenti, byte inviati o chiamate di funzioni) che avrebbero un effetto sulla fatturazione.

Dopo aver visualizzato a tuo agio l'utilizzo delle risorse in Esplora metriche, ti consigliamo di creare una policy di avviso sulle metriche che ti interessano di più. Di seguito sono riportati alcuni esempi di politiche di avviso:

  • Se il numero di documenti letti in un periodo di 30 minuti è maggiore di un valore particolare

  • Se l'utilizzo di una risorsa specifica (come una chiamata di funzione) sembra aumentare troppo rapidamente in un determinato periodo di tempo

Crea una logica di fatturazione aggiuntiva

Gli avvisi sul budget inviano email automaticamente quando il tuo budget raggiunge determinate soglie, ma per avvisi più sofisticati o reazioni programmatiche agli aumenti di spesa, potresti prendere in considerazione l'impostazione di una logica personalizzata aggiuntiva basata sui messaggi Pub/Sub di Google Cloud.

Ad esempio, puoi inviare avvisi ai canali Slack o tramite SMS oppure apportare modifiche programmatiche alla tua app o al tuo progetto a seconda dei livelli di spesa.

Pub/Sub è un servizio di passaggio messaggi che consente ad altri servizi di inviare messaggi, in genere sotto forma di dati JSON, in modo asincrono attraverso canali noti come argomenti Pub/Sub. Puoi configurare servizi autorizzati, come Cloud Functions, per ascoltare i messaggi in questi argomenti e agire sui dati in modo appropriato.

Tieni presente che le notifiche Pub/Sub per la fatturazione vengono inviate circa una volta ogni 20 minuti indipendentemente dal fatto che l'utilizzo della fatturazione sia cambiato o meno e sono stateless (il che significa che non forniscono alcun contesto su ciò che le ha precedute). Se vuoi tenere traccia degli aumenti insoliti della spesa nel tempo o confrontare la tua spesa con il ciclo precedente, dovrai gestire tu stesso quei dati storici utilizzando un database come Cloud Firestore o Realtime Database.

Utilizzo di argomenti Pub/Sub con Cloud Functions

Puoi impostare un argomento Pub/Sub per i tuoi dati di fatturazione visitando il budget associato al tuo progetto Firebase in Google Cloud Console (in Fatturazione > Budget e avvisi ), quindi facendo clic sulla casella di controllo Collega un argomento Pub/Sub a questo budget . Questo creerà un argomento Pub/Sub che potrai ascoltare in seguito. Per i passaggi dettagliati, fare riferimento alla documentazione completa .

Dopo aver creato il tuo argomento di fatturazione Pub/Sub, puoi scrivere una funzione cloud per ascoltare questo argomento e agire di conseguenza sui dati. I dati vengono inviati come dati JSON e includono informazioni utili come l'importo speso finora, l'importo del budget e la data di inizio del ciclo di fatturazione corrente.

La documentazione di Google Cloud contiene tutti i dettagli su come ricevere questi dati utilizzando una funzione cloud. Tuttavia, se utilizzi Cloud Functions per Firebase per distribuire le tue funzioni, il processo generale è un po' più semplice (consulta la documentazione di Firebase ). Puoi anche fare riferimento a questo video per una procedura dettagliata di esempio del processo.

Dopo aver ricevuto questi dati, ci sono diversi modi in cui puoi rispondere. Ecco alcune opzioni: