Configurer des alertes et une logique de facturation avancées

Bien que de simples e-mails d'alerte budgétaire constituent un moyen relativement simple de recevoir des mises à jour de facturation, il peut arriver que vous souhaitiez créer des alertes plus sophistiquées incluant une logique plus personnalisée. Voici deux approches à considérer :

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

  • Utilisez 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 donnent le pouvoir de contrôler exactement les types d'alertes que vous recevez et la manière d'y répondre.

Cette page offre un aperçu de chacune de ces approches.

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

De simples e-mails d'alerte budgétaire vous permettent de savoir lorsque votre facturation globale a atteint certains seuils. Cependant, vous souhaiterez peut-être également savoir si certains services augmentent de manière inattendue – avant qu'ils n'aient eu la possibilité d'affecter de manière significative votre budget. Pour des cas d'utilisation plus sophistiqués comme celui-ci, nous vous recommandons de vous renseigner sur Cloud Monitoring, qui est un outil Google Cloud disponible pour votre projet Firebase.

Cloud Monitoring est utile pour plusieurs types d'alertes :

  • Si une ressource sur laquelle repose votre projet n'est pas disponible (pour les services Firebase et Google Cloud, mais même 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 rejette trop de requêtes (ce qui indique que vos règles de sécurité Firebase peuvent ê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 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 la surveillance du cloud

Pour démarrer avec Cloud Monitoring, nous vous recommandons de commencer par Metrics Explorer , qui vous permet de créer des graphiques de métriques personnalisées au sein de votre projet Firebase/Google Cloud et de visualiser leur utilisation.

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

Une fois que vous êtes à l'aise pour visualiser votre utilisation des ressources dans l'explorateur de métriques, nous vous recommandons de créer une stratégie d'alerte sur les métriques qui vous intéressent le plus. Voici quelques exemples de règles d’alerte :

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

  • Si l'utilisation d'une ressource spécifique (comme un appel de fonction) semble augmenter trop rapidement sur une certaine période

Créer une logique de facturation supplémentaire

Les alertes budgétaires envoient automatiquement des e-mails lorsque votre budget atteint certains seuils, mais 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 aux canaux Slack ou par SMS, ou apporter des modifications programmatiques à votre application ou 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 la forme de données JSON) de manière asynchrone via des canaux appelés sujets Pub/Sub. Vous pouvez configurer des services autorisés, comme Cloud Functions, pour écouter les messages dans ces sujets et agir sur les données de manière appropriée.

Notez que les notifications Pub/Sub pour la facturation sont envoyées environ toutes les 20 minutes, que votre utilisation de 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 des 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 la base de données en temps réel.

Utiliser des sujets Pub/Sub avec Cloud Functions

Vous pouvez configurer un sujet Pub/Sub pour vos données de facturation en visitant le budget associé à votre projet Firebase dans la console Google Cloud (sous Facturation > Budgets et alertes ), puis en cochant la case Connecter un sujet Pub/Sub à ce budget. . Cela créera un sujet Pub/Sub que vous pourrez écouter plus tard. Pour connaître les étapes détaillées, reportez-vous à la documentation complète .

Après avoir 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 sous forme de données JSON et comprennent 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 contient tous les détails sur la façon de recevoir ces données à l'aide d'une fonction Cloud. Cependant, si vous utilisez Cloud Functions pour Firebase pour déployer vos fonctions, le processus général est un peu plus simple (consultez la documentation Firebase ). Vous pouvez également vous référer à cette vidéo pour 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. Voici quelques options :