Configurer les notifications automatisées

Ce document explique comment configurer des notifications automatisées de budget et d'anomalie de coût (preview) à l'aide de Pub/Sub.

Les budgets et les anomalies de coûts 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ûts 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 de prendre des mesures en temps opportun 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 :

Limites

Autorisations requises pour cette tâche

Notifications de 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 les rôles personnalisés puissent modifier un budget Cloud Billing existant afin de l'associer à un sujet Pub/Sub existant, vous devez disposer 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 également à 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 également à 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 automatisées, vous devez disposer des autorisations nécessaires pour créer ou modifier des anomalies et des sujets Pub/Sub. Vous devez disposer d'autorisations sur le compte de facturation Cloud.

Utilisateurs disposant des autorisations associées au compte de facturation Cloud (preview)

Si votre organisation utilise des rôles personnalisés pour l'authentification, vous devez disposer des autorisations suivantes dans les rôles personnalisés :

  • billing.accounts.get sur le compte de facturation Cloud.
  • billing.accounts.getIamPolicy sur le compte de facturation Cloud.
  • billing.anomalies.get sur le compte de facturation Cloud.
  • billing.anomalies.list sur le compte de facturation Cloud.
  • pubsub.topics.setIamPolicy sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
  • pubsub.topics.list sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
  • pubsub.subscriptions.consume sur le projet cible (ou l'abonnement) contenant les abonnements Pub/Sub que vous souhaitez utiliser.

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 également à 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 de budget ou d'anomalie automatisées, vous devez d'abord créer un sujet Pub/Sub. Si vous avez déjà configuré un sujet Pub/Sub pour les budgets ou les anomalies de coûts, vous pouvez ignorer cette étape.

  1. Accédez à la page Pub/Sub de la console Google Cloud .

    Se connecter à la page Pub/Sub de la console Google Cloud

  2. Sélectionnez un projet pour contenir 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 contenir vos sujets Pub/Sub liés à la facturation.

  3. Cliquez sur Créer un sujet.

  4. Dans le champ ID du sujet, indiquez un nom de sujet.

  5. 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 connecter votre budget ou votre anomalie à votre sujet Pub/Sub.

Notifications de 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)
  1. Connectez-vous à la page Budgets et alertes de la console Google Cloud .

    Ouvrir la page Budgets et alertes
  2. Lorsque l'invite s'affiche, choisissez le compte de facturation Cloud pour lequel vous souhaitez gérer les budgets.

    La page Budgets et alertes s'ouvre pour le compte de facturation sélectionné.

  3. Sélectionnez le budget que vous souhaitez associer ou créez-en un.
  4. Dans la section Actions, sous Gérer les notifications, sélectionnez Associer un sujet Pub/Sub à ce budget.
  5. Dans le champ Projet, cliquez sur Sélectionner un projet, puis choisissez le projet contenant les sujets Pub/Sub que vous avez configurés.
  6. Sous Sélectionner un sujet Pub/Sub, choisissez un sujet existant ou créez-en un en cliquant sur Créer un sujet.
    • Si vous créez un sujet, indiquez un nom de sujet dans le champ ID du sujet, puis cliquez sur Créer un sujet.
    • Une fois le sujet créé, il est automatiquement sélectionné.
  7. Cliquez sur Enregistrer.
  1. Connectez-vous au tableau de bord de la console Google Cloud et sélectionnez un projet.

    Ouvrir la console Google Cloud
  2. Sélectionnez le projet pour lequel vous souhaitez gérer les budgets.
  3. Accédez à la section Facturation : ouvrez le menu de navigation de la console Google Cloud , puis sélectionnez Facturation.

    Si vous êtes invité à choisir le compte de facturation que vous souhaitez afficher et gérer, cliquez sur Accéder au compte de facturation associé pour afficher le compte de facturation associé au projet sélectionné.

    La page Vue d'ensemble de la facturation s'ouvre pour le compte de facturation sélectionné.

  4. Dans la section Gestion des coûts du menu de navigation "Facturation", sélectionnez Budgets et alertes.
  5. Sélectionnez le budget que vous souhaitez associer ou créez-en un.
  6. Dans la section Actions, sous Gérer les notifications, sélectionnez Associer un sujet Pub/Sub à ce budget.
  7. Dans le champ Projet, cliquez sur Sélectionner un projet, puis choisissez le projet contenant les sujets Pub/Sub que vous avez configurés.
  8. Sous Sélectionner un sujet Pub/Sub, choisissez un sujet existant ou créez-en un en cliquant sur Créer un sujet.
    • Si vous créez un sujet, indiquez un nom de sujet dans le champ ID du sujet, puis cliquez sur Créer un sujet.
    • Une fois le sujet créé, il est automatiquement sélectionné.
  9. Cliquez sur Enregistrer.

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 (preview)
  1. Connectez-vous à la page Anomalies de la console Google Cloud .

    Anomalies ouvertes
  2. Lorsque vous y êtes invité, choisissez le compte de facturation Cloud pour lequel vous souhaitez gérer les anomalies.

    La page Anomalies s'ouvre pour le compte de facturation sélectionné.

  3. Cliquez sur Gérer les anomalies.
  4. Saisissez une valeur de seuil d'anomalie pour l'impact sur les coûts. Ce montant correspond à la valeur de seuil qui déclenche les notifications. Si vous ne fournissez pas de valeur, le seuil est défini sur zéro et des notifications sont envoyées pour toutes les anomalies.
  5. Dans la section Notifications Pub/Sub, sélectionnez Associer un sujet Pub/Sub pour recevoir des mises à jour automatisées concernant les anomalies.
  6. Dans le menu déroulant qui s'affiche, sélectionnez le sujet Pub/Sub que vous souhaitez associer pour recevoir des notifications.
    • Les sujets sont listés par projet. Vous devrez peut-être changer de projet pour trouver le sujet que vous souhaitez sélectionner.
    • Si vous souhaitez créer un sujet, basculez vers le projet de votre choix avant de cliquer sur Créer un sujet.
  7. Cliquez sur Enregistrer.

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 de 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 de facturation Cloud propriétaire du budget.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb Identifiant de l'alerte budgétaire dans le compte de facturation Cloud.
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 encodée en base64 contenant 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 :
  • "SPECIFIED_AMOUNT" : montant fixe.
  • "LAST_MONTH_COST" : coûts totaux encourus au cours du dernier mois calendaire.
  • "LAST_PERIODS_COST" : coûts engagés au cours de la dernière période calendaire non mensuelle, par exemple un trimestre ou une année.
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 réel 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 contenues dans toutes les notifications envoyées par Cloud Billing à 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
scope 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 encodée en base64 contenant un objet JSON avec les propriétés suivantes :

Données Exemple Description
anomalyName billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa Nom de 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 la portée de l'anomalie.
expectedSpendAmount {
"currencyCode": "USD",
"units": "8",
"nanos": 988106832
}
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 d'é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 la cause principale de l'anomalie.

Distribution des notifications à Pub/Sub

Après avoir associé votre budget ou votre anomalie à un sujet Pub/Sub, vous pouvez vous attendre à recevoir des notifications automatisées comme suit :

Notifications de 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'alertes budgétaires, qui sont uniquement envoyés 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é.
  • Vous devrez peut-être attendre plusieurs heures avant de recevoir la première notification Pub/Sub.
  • Pub/Sub ne fournit que la distribution de type "au moins 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 ne recevrez pas de notification.

La distribution peut échouer pour l'une des raisons suivantes :

Notifications d'anomalies

  • Les notifications d'anomalie ne sont envoyées au sujet Pub/Sub que lorsque le seuil est atteint.
  • Pub/Sub ne garantit qu'une distribution "au moins 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 ne serez pas averti.

La distribution peut échouer pour l'une des raisons suivantes :

Pour en savoir plus, consultez Publier et recevoir des messages dans Pub/Sub.

Étapes suivantes

Pour en savoir plus sur l'utilisation des notifications automatisées, consultez les exemples suivants de réponses automatisées de contrôle des coûts :