Configurer des alertes de facturation avancées et une logique

Bien que les e-mails d'alerte de budget simple soient un moyen relativement facile de recevoir des informations sur la facturation, il peut arriver que vous souhaitiez créer des alertes plus sophistiquées incluant une logique plus personnalisée. Voici deux approches à envisager :

  • Utilisez Cloud Monitoring pour créer des alertes plus sophistiquées et plus opportunes.

  • Utilisez une notification de facturation Pub/Sub avec une fonction Cloud correspondante pour créer un comportement personnalisé en réponse aux variations 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 la façon d'y répondre.

Cette page présente chacune de ces approches.

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

Les e-mails d'alerte budgétaire simple vous informent lorsque votre facturation globale a atteint certains seuils. Toutefois, vous pouvez également être intéressé par la détection d'une augmentation inattendue des coûts de services individuels, avant qu'ils n'aient eu le temps d'affecter considérablement votre budget. Pour les cas d'utilisation plus complexes comme celui-ci, nous vous recommandons de vous renseigner sur Cloud Monitoring, un outil Google Cloud disponible pour votre projet Firebase.

Cloud Monitoring est utile pour plusieurs types d'alertes :

  • Si une ressource dont dépend votre projet 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 bucket Cloud Storage, votre instance Realtime Database ou votre instance Cloud Firestore rejettent trop de requêtes (ce qui indique que votre Firebase Security Rules est peut-être incorrect).

  • 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 simples e-mails d'alerte budgétaire, 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 instances Cloud Firestore, Realtime Database ou Cloud Functions. Vous pouvez consulter des informations sur l'utilisation de ces produits (comme le nombre de lectures de documents, les octets envoyés ou les appels de fonctions) qui ont 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 spécifique

  • Si l'utilisation d'une ressource spécifique (comme l'appel d'une fonction) semble augmenter trop rapidement au cours d'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 les messages Google Cloud Pub/Sub.

Par exemple, vous pouvez envoyer des alertes vers des chaînes Slack ou par message, 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 thèmes Pub/Sub. Vous pouvez configurer des services autorisés, comme Cloud Functions, pour qu'ils écoutent les messages de ces thèmes et agissent en conséquence sur les données.

Notez que les notifications Pub/Sub concernant la facturation sont envoyées environ toutes les 20 minutes, que votre utilisation de la facturation ait changé ou non. Elles sont sans état (c'est-à-dire 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 comme Cloud Firestore ou Realtime Database.

Utiliser les thèmes Pub/Sub 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 console Google Cloud (sous Facturation > Budgets et alertes), puis en cochant la case Associer un sujet Pub/Sub à ce budget. Cette opération crée un sujet Pub/Sub 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 en conséquence sur les données. 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, votre budget et la date de début de votre cycle de facturation actuel.

La documentation Google Cloud fournit tous les détails sur la façon de recevoir 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 consulter cette vidéo pour obtenir un exemple de procédure.

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 :