Ce document explique comment configurer des notifications d'anomalies de budget et de coûts automatisés (Aperçu) à l'aide de Pub/Sub.
Les budgets et les anomalies de coût sont généralement configurés pour envoyer des notifications par e-mail. Si vous utilisez des budgets ou la détection d'anomalies de coût comme outil de contrôle des coûts, les notifications par e-mail ne sont peut-être pas la meilleure méthode pour vous assurer que vous prenez rapidement les mesures nécessaires pour contrôler vos coûts. Vous pouvez configurer et utiliser des notifications programmatiques pour automatiser les réponses de contrôle des coûts. Voici quelques exemples de réponses automatiques de contrôle des coûts:
- Intégrez Slack pour une réponse plus rapide
- Gérer la consommation de ressources pour réduire les coûts
- Limiter les dépenses en désactivant la facturation lorsque vous atteignez votre budget
Limites
Les budgets se basent sur une estimation des données Cloud Billing, susceptibles de changer avant que la facture ne soit finalisée.
Si vous définissez des règles d'administration pour limiter le partage de ressources par domaine (par exemple, en activant
enforceInTransit
sur les sujets Pub/Sub), une erreur risque de se produire lorsque vous essayez de configurer ou de connecter des sujets Pub/Sub. Dans ce cas, vous devrez peut-être forcer l'accès au compte pour associer correctement un sujet Pub/Sub à un budget. Pour forcer l'accès au compte, procédez comme suit:- Supprimez la règle d'administration contenant la contrainte de restriction de domaine en utilisant l'une des méthodes suivantes :
- Suivez la procédure pour associer un sujet Pub/Sub.
- Rétablissez la règle d'administration pour l'organisation ou le projet (facultatif).
Autorisations requises pour cette tâche
Notifications sur le budget
Pour configurer des notifications budgétaires automatisées, vous devez disposer des autorisations nécessaires pour créer ou modifier des budgets et des sujets Pub/Sub. Vous avez besoin d'un ensemble d'autorisations différent en fonction de votre niveau d'accès.
Utilisateurs disposant des autorisations associées au compte de facturation Cloud | Utilisateurs disposant uniquement d'autorisations au niveau du projet (bêta) |
---|---|
Si votre organisation utilise des rôles personnalisés pour l'authentification, vous devez disposer des autorisations suivantes dans les rôles personnalisés:
Pour que des rôles personnalisés puissent modifier un budget Cloud Billing existant afin de l'associer à un sujet Pub/Sub existant, vous avez besoin des autorisations suivantes:
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur votre compte de facturation Cloud: Demandez à votre administrateur de vous accorder le rôle suivant sur le projet cible contenant les sujets Pub/Sub: |
Si votre organisation utilise des rôles personnalisés pour l'authentification, vous devez disposer des autorisations suivantes dans les rôles personnalisés:
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur le projet: Demandez à votre administrateur de vous accorder le rôle suivant sur le projet cible contenant les sujets Pub/Sub: |
Notifications d'anomalies
Pour configurer des notifications d'anomalies programmatiques, vous devez disposer des autorisations nécessaires pour créer ou modifier des anomalies et des sujets Pub/Sub. Vous devez disposer d'autorisations pour le compte de facturation Cloud.
Utilisateurs disposant des autorisations associées au compte de facturation Cloud (version Preview) |
---|
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur votre compte de facturation Cloud: Demandez à votre administrateur de vous accorder le rôle suivant sur le projet cible contenant les sujets Pub/Sub: |
Créer un sujet Pub/Sub
Pour configurer des notifications sur les budgets automatisés ou les anomalies, vous devez d'abord créer un sujet Pub/Sub. Si vous avez déjà configuré un sujet Pub/Sub pour les anomalies de budget ou de coût, vous pouvez ignorer cette étape.
Accédez à la page Pub/Sub de la console Google Cloud.
Sélectionnez un projet contenant le sujet Pub/Sub.
Lorsque vous configurez des sujets Pub/Sub pour les notifications de facturation, nous vous recommandons d'utiliser un projet d'administration FinOps pour y inclure vos sujets Pub/Sub liés à la facturation.
Cliquez sur
Créer un sujet.Dans le champ ID du sujet, indiquez un nom de sujet.
Conservez les paramètres d'abonnement et de chiffrement par défaut, puis cliquez sur Créer.
Associer votre sujet Pub/Sub
Pour permettre aux notifications automatisées de recevoir des messages Pub/Sub avec l'état actuel de votre budget ou de votre anomalie, vous devez associer votre budget ou votre anomalie à votre sujet Pub/Sub.
Notifications sur le budget
Pour associer un sujet Pub/Sub à un budget Cloud Billing, procédez comme suit:
Utilisateurs disposant des autorisations associées au compte de facturation Cloud | Utilisateurs disposant uniquement d'autorisations au niveau du projet (bêta) |
---|---|
|
|
Notifications d'anomalies
Pour associer un sujet Pub/Sub à une anomalie de coût, procédez comme suit:
Utilisateurs disposant des autorisations associées au compte de facturation Cloud (version Preview) |
---|
|
Format des notifications
Les notifications envoyées au sujet Pub/Sub comprennent deux parties :
- Attributs : ensemble de paires valeur/clé décrivant l'événement.
Données : chaîne contenant un objet JSON qui rassemble les détails de l'alerte budgétaire.
Notifications sur le budget
Attributs
Les attributs sont des paires valeur/clé présentes dans toutes les notifications que Cloud Billing envoie à votre sujet Pub/Sub. Les notifications comportent toujours l'ensemble de paires valeur-clé suivant, quelle que soit leur charge utile.
Nom de l'attribut | Exemple | Description |
---|---|---|
billingAccountId |
01D4EE-079462-DFD6EC
|
Identifiant du compte Cloud Billing propriétaire du budget. |
budgetId |
de72f49d-779b-4945-a127-4d6ce8def0bb
|
Identifiant de l'alerte budgétaire dans le compte Cloud Billing. |
schemaVersion |
1.0
|
Version du schéma des notifications. |
Données
Les détails de l'alerte budgétaire sont renvoyés dans une chaîne UTF-8 avec un code en base64 qui contient un objet JSON avec les propriétés suivantes:
Données | Exemple | Description |
---|---|---|
budgetDisplayName
|
"My Personal Budget"
|
Nom lisible par l'humain attribué au budget. |
costAmount
|
140.321
|
Montant des coûts accumulés. Le type de coûts suivis dépend des filtres et des paramètres du budget. |
costIntervalStart
|
"2021-02-01T08:00:00Z"
|
Début de la période de l'alerte budgétaire. "costAmount" inclut des coûts d'utilisation à partir de ce moment. Il s'agit du premier jour de la période budgétaire (mois, trimestre, année ou période personnalisée) au cours de laquelle le budget a été utilisé. |
budgetAmount
|
152.557
|
Montant du budget. |
budgetAmountType
|
"SPECIFIED_AMOUNT"
|
Type du montant du budget. Il peut s'agir de l'une des valeurs suivantes :
|
alertThresholdExceeded
|
0.9
|
Le seuil maximal de l'alerte configurée relative aux coûts réels a été franchi. La valeur est un pourcentage au format décimal (par exemple, 0,9 correspond à 90 %). Cette clé n'est pas présente si le coût ne dépasse aucun seuil. |
forecastThresholdExceeded
|
0.2
|
Le seuil d'alerte de coût prévu le plus élevé a été dépassé. La valeur est un pourcentage au format décimal (par exemple, 0,2 correspond à 20 %). Cette clé n'est pas présente si le coût prévu ne dépasse aucun seuil. |
currencyCode
|
"USD"
|
Devise de l'alerte budgétaire. Tous les coûts et les montants de l'alerte budgétaire sont présentés dans cette devise. |
Notifications d'anomalies
Attributs
Les attributs sont des paires clé/valeur présentes dans toutes les notifications que Cloud Billing envoie à votre sujet Pub/Sub. Les notifications comportent toujours l'ensemble de paires clé-valeur suivant, quelle que soit leur charge utile.
Nom de l'attribut | Exemple | Description |
---|---|---|
portée |
scope_project
|
Champ d'application de l'anomalie. |
billingAccountName |
billingAccounts/01D4EE-079462-DFD6EC
|
Identifiant du compte de facturation Cloud où l'anomalie s'est produite. |
resourceDisplayName |
My project
|
Nom à afficher de la ressource dans laquelle l'anomalie s'est produite. |
resourceName |
projects/123456
|
Identifiant de la ressource dans laquelle l'anomalie s'est produite. |
SchemaVersion |
1.0
|
Version du schéma Pub/Sub. |
Données
Les détails de l'alerte d'anomalie sont renvoyés dans une chaîne UTF-8 avec un code en base64 qui contient un objet JSON avec les propriétés suivantes:
Données | Exemple | Description |
---|---|---|
anomalyName
|
billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa
|
Nom de la ressource de l'anomalie. |
billingAccountName
|
billingAccounts/01D4EE-079462-DFD6EC
|
Identifiant du compte de facturation. |
resourceName
|
"projects/12345"
|
Identifiant de la ressource dans laquelle l'anomalie s'est produite. |
resourceDisplayName
|
"My project"
|
Nom à afficher de la ressource dans laquelle l'anomalie s'est produite. |
detectionDate
|
"2024-02-01T08:00:00Z"
|
Date à laquelle l'anomalie de coût a été détectée. |
Scope
|
SCOPE_PROJECT
|
Indique le champ d'application de l'anomalie. |
expectedSpendAmount
|
{
|
Dépenses attendues pour la ressource. |
actualSpendAmount
|
196.22
|
Dépenses réelles pour la ressource. |
deviationAmount
|
31.01
|
Différence entre les dépenses réelles et les dépenses prévues. |
deviationPercentage
|
18.77
|
Pourcentage de l'écart par rapport aux dépenses attendues. |
Root cause
|
root_causes { resource: "services/XXX-XXXX-XXX" display_name: "BigQuery" cause_type: CAUSE_TYPE_SERVICE deviation { expected_spend { currency_code: "USD" units: "5000" } actual_spend { currency_code: "USD" units: "5000" } deviation_amount { currency_code: "USD" units: "5000" } deviation_percentage: "Infinity" } sub_causes { resource: "locations/us-west1", display_name: "us-west1", cause_type: CAUSE_TYPE_LOCATION, deviation { expected_spend { currency_code: "USD", } actual_spend { currency_code: "USD", units:"5000" } deviation_amount { currency_code: "USD", units: "5000" } deviation_percentage: "Infinity" } sub_causes { resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX" display_name: "Some display name" cause_type: CAUSE_TYPE_SKU deviation { expected_spend { currency_code: "USD" } actual_spend { currency_code: "USD" units: 5000 } deviation_amount { currency_code: "USD" units: 5000 } deviation_percentage: "Infinity" } } sub_causes { resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX" display_name: "Some display name" cause_type: CAUSE_TYPE_SKU deviation { expected_spend { currency_code: "USD" units: "1" nanos: 5413077 } actual_spend { currency_code: "USD" units: "1", nanos: 122606000 } deviation_amount { currency_code: "USD" nanos: 117192923 } deviation_percentage:11.656196419841217 } } } } |
Champ répété contenant des informations sur l'origine de l'anomalie. |
Garanties de distribution pour les notifications à Pub/Sub
Une fois que vous avez associé votre budget ou votre anomalie à un sujet Pub/Sub, vous pouvez vous attendre à recevoir des notifications automatisées comme suit:
Notifications sur le budget
- Les notifications de budget sont envoyées plusieurs fois par jour au sujet Pub/Sub avec l'état actuel de votre budget. Cette fréquence est différente de celle des e-mails d'alerte budgétaire, qui ne sont envoyés que lorsqu'un seuil budgétaire est atteint.
- Les notifications Pub/Sub sont envoyées même si le compte Cloud Billing n'est pas utilisé.
- La réception de la première notification Pub/Sub peut prendre plusieurs heures.
- Pub/Sub garantit une distribution sans faute au minimum d'une fois. Vous pouvez recevoir les messages plusieurs fois ou dans le désordre.
- Si la distribution échoue en raison d'une mauvaise configuration du sujet Pub/Sub, vous n'en serez pas informé.
La distribution peut échouer pour l'une des raisons suivantes :
- Le sujet Pub/Sub n'existe plus.
- Cloud Billing n'est plus autorisé à publier dans le sujet Pub/Sub.
- Vous avez dépassé votre quota de notifications.
- Vous avez mis en place des règles d'administration qui limitent le partage de ressources par domaine.
Notifications d'anomalies
- Les notifications d'anomalie ne sont envoyées au sujet Pub/Sub que lorsque le seuil est atteint.
- Pub/Sub garantit une distribution sans faute au minimum d'une fois. Vous pouvez recevoir les messages plusieurs fois ou dans le désordre.
- Si la distribution échoue en raison d'une mauvaise configuration du sujet Pub/Sub, vous n'en serez pas informé.
La distribution peut échouer pour l'une des raisons suivantes :
- Le sujet Pub/Sub n'existe plus.
- Le compte Cloud Billing n'est plus autorisé à publier dans le sujet Pub/Sub.
- Vous avez dépassé votre quota de notifications.
- Vous avez mis en place des règles d'administration qui limitent le partage de ressources par domaine.
Pour en savoir plus, consultez la section Publier et recevoir des messages dans Pub/Sub.
Étape suivante
Pour en savoir plus sur l'utilisation des notifications programmatiques, consultez les exemples suivants de réponses de contrôle des coûts programmatiques:
- Écouter vos notifications
- Envoyer des notifications à Slack
- Contrôler l'utilisation des ressources avec les notifications
- Désactiver l'utilisation de la facturation avec les notifications