Configurer des alertes de facturation avancées et une logique

Bien que les e-mails d'alerte budgétaire simples soient un moyen relativement facile de recevoir des informations sur la facturation, vous pouvez parfois avoir besoin de créer des alertes plus sophistiquées qui incluent une logique plus personnalisée. Voici deux approches à envisager :

  • Utiliser Cloud Monitoring pour créer des alertes plus sophistiquées et plus rapides

  • Utiliser une notification Pub/Sub de facturation avec une fonction Cloud correspondante pour créer un comportement personnalisé en réponse aux modifications de vos dépenses

Bien que ces deux techniques nécessitent plus de travail de votre part, elles vous permettent de contrôler exactement les types d'alertes que vous recevez et comment y répondre.

Cette page présente un aperçu de chacune de ces approches.

Créer des alertes plus sophistiquées avec Cloud Monitoring

Les e-mails d'alerte budgétaire simples vous informent lorsque votre facturation globale a atteint certains seuils. Toutefois, vous pouvez également être intéressé de savoir si des services individuels augmentent de manière inattendue, avant qu'ils n'aient eu la possibilité d'affecter considérablement votre budget. Pour des cas d'utilisation plus sophistiqués comme celui-ci, nous vous recommandons de vous familiariser avec Cloud Monitoring, un outil Google Cloud disponible pour votre projet Firebase.

Cloud Monitoring est utile pour plusieurs types d'alertes :

  • Si une ressource sur laquelle votre projet s'appuie n'est pas disponible (pour les services Firebase et Google Cloud, mais aussi pour les services externes, comme AWS)

  • Si des services tels que Cloud Functions mettent plus de temps que prévu à répondre

  • Si votre Cloud Storage bucket, Realtime Database instance, ou Cloud Firestore instance rejettent trop de requêtes (ce qui indique que vos Firebase Security Rules sont peut-être incorrectes)

  • Si la quantité de ressources utilisées par certains de vos produits Firebase a dépassé un certain seuil

Les alertes créées via Cloud Monitoring sont généralement envoyées plus rapidement que les e-mails d'alerte budgétaire simples, qui sont généralement envoyés une fois par jour. Les alertes peuvent prendre la forme de messages SMS, de messages de canal Slack, de notifications PagerDuty, de webhooks, etc. Ces options vous permettent d'envoyer des alertes avec des niveaux de visibilité plus élevés et plus exploitables.

Utiliser Cloud Monitoring

Pour commencer à utiliser Cloud Monitoring, nous vous recommandons de commencer par l' explorateur de métriques, qui vous permet de créer des graphiques de métriques personnalisées dans votre projet Firebase/Google Cloud et de visualiser leur utilisation.

Plus précisément, vous pouvez examiner des ressources telles que vos Cloud Firestore, Realtime Database, ou Cloud Functions. Vous pouvez afficher des informations sur l'utilisation de ces produits (comme le nombre de lectures de documents, d'octets envoyés ou d'invocations de fonctions) qui auraient un impact sur votre facturation.

Une fois que vous êtes à l'aise avec la visualisation de l'utilisation de vos ressources dans l'explorateur de métriques, nous vous recommandons de créer une règle d'alerte sur les métriques qui vous intéressent le plus. Voici quelques exemples de règles d'alerte :

  • Si le nombre de lectures de documents sur une période de 30 minutes est supérieur à une valeur particulière

  • Si l'utilisation d'une ressource spécifique (comme une invocation de fonction) semble augmenter trop rapidement sur une période donnée

Créer une logique de facturation supplémentaire

Les alertes budgétaires envoient automatiquement des e-mails lorsque votre budget atteint certains seuils. Toutefois, pour des alertes plus sophistiquées ou des réactions programmatiques aux augmentations de dépenses, vous pouvez envisager de configurer une logique personnalisée supplémentaire basée sur Google Cloud Pub/Sub messages.

Par exemple, vous pouvez envoyer des alertes à des canaux Slack ou par SMS, ou apporter des modifications programmatiques à votre application ou à votre projet en fonction des niveaux de dépenses.

Pub/Sub est un service de transmission de messages qui permet à d'autres services d'envoyer des messages (généralement sous forme de données JSON) de manière asynchrone via des canaux appelés sujets Pub/Sub. Vous pouvez configurer des services autorisés, tels que Cloud Functions, pour écouter les messages de ces sujets et agir de manière appropriée sur les données.

Notez que les notifications Pub/Sub pour la facturation sont envoyées environ toutes les 20 minutes, que votre utilisation de la facturation ait changé ou non, et qu'elles sont sans état (ce qui signifie qu'elles ne fournissent aucun contexte sur ce qui les a précédées). Si vous souhaitez suivre les augmentations inhabituelles de vos dépenses au fil du temps ou comparer vos dépenses au cycle précédent, vous devrez gérer vous-même ces données historiques à l'aide d'une base de données telle que Cloud Firestore ou Realtime Database.

Utiliser des Pub/Sub sujets avec Cloud Functions

Vous pouvez configurer un sujet Pub/Sub pour vos données de facturation en accédant au budget associé à votre projet Firebase dans la Google Cloud console (sous Facturation > Budgets et alertes), puis en cochant la case Associer un sujet Pub/Sub à ce budget. Cette opération crée un Pub/Sub sujet que vous pourrez écouter ultérieurement. Pour connaître la procédure détaillée, consultez la documentation complète.

Une fois que vous avez créé votre sujet de facturation Pub/Sub, vous pouvez écrire une fonction Cloud pour écouter ce sujet et agir sur les données en conséquence. Les données sont envoyées au format JSON et incluent des informations utiles telles que le montant que vous avez dépensé jusqu'à présent, le montant de votre budget et la date de début de votre cycle de facturation actuel.

La documentation Google Cloud fournit des informations complètes sur la réception de ces données à l'aide d'une fonction Cloud. Toutefois, si vous utilisez Cloud Functions for Firebase pour déployer vos fonctions, le processus général est un peu plus simple (consultez la documentation Firebase). Vous pouvez également regarder cette vidéo pour obtenir un exemple de procédure pas à pas.

Une fois que vous avez reçu ces données, vous pouvez y répondre de différentes manières. Vous avez le choix entre différentes options :