Visualiser vos coûts avec Looker Studio


Vous pouvez combiner l'exportation des données Cloud Billing vers BigQuery avec Looker Studio, afin de rester informé de l'évolution de vos coûts Google Cloud.

Ce document vous explique comment configurer le tableau de bord d'utilisation de la facturation et des insights sur les coûts avec vos données Cloud Billing. Vous pouvez utiliser le tableau de bord pour répondre à des questions concernant vos dépenses Google Cloud, telles que Quel est le montant de mes dépenses liées aux ressources Compute Engine ? et Quels environnements me coûtent le plus cher ?

Exemple de visualisation dans Looker Studio

Vous pouvez configurer votre tableau de bord en suivant ce tutoriel, ou bien en regardant la vidéo suivante :

Objectifs

Ce guide vous explique comment effectuer les tâches suivantes :

  • Configurez votre propre copie du tableau de bord d'utilisation de la facturation et des coûts à l'aide de Cloud Shell.

    Vous pouvez utiliser Terraform ou Python pour suivre les étapes de ce tutoriel.

  • Configurez les filtres du tableau de bord pour qu'ils utilisent les libellés que vous utilisez dans votre environnement Google Cloud.

  • Découvrez comment modifier la source de données du tableau de bord pour des cas avancés, par exemple si vous avez plusieurs comptes de facturation Cloud ou un compte de facturation Cloud dans une devise autre que le dollar américain (USD).

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

The cost of storing your Cloud Billing data in BigQuery is typically free or minimal. Depending on the size of the BigQuery dataset, you might incur costs for querying the data for analysis.

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Assurez-vous d'avoir accès à l'exemple de tableau de bord d'utilisation de la facturation et des insights sur les coûts. Si vous ne pouvez pas accéder à l'exemple, il est possible que des restrictions de domaine soient activées dans votre organisation. Votre administrateur peut temporairement désactiver la restriction de domaine pour votre compte.

    En savoir plus sur les restrictions de domaine

  2. Vérifiez que votre organisation a activé l'exportation Cloud Billing vers BigQuery pour les données sur le coût d'utilisation standard.

    Si l'exportation des données Cloud Billing n'est pas activée, découvrez comment l'activer vers BigQuery.

  3. Vous devez disposer des autorisations permettant de créer des vues BigQuery dans le projet qui héberge les ensembles de données pour votre exportation de données Cloud Billing.

    Si vous souhaitez créer un ensemble de données pour les vues BigQuery, vous devez être autorisé à créer des ensembles de données BigQuery.

  4. Obtenez les informations suivantes sur votre environnement Google Cloud :

    • ID du projet dans lequel votre ensemble de données BigQuery Cloud Billing est hébergé.
    • Noms des ensembles de données pour les exportations de données de coût standard et détaillées. En règle générale, les exportations de données de coût se trouvent dans le même ensemble de données.
  5. Si vous partagez le tableau de bord avec d'autres membres de votre organisation, nous vous recommandons de suivre les étapes supplémentaires ci-dessous. Celles-ci vous aident à configurer un compte de service Google Cloud, qui peut s'authentifier auprès des données BigQuery au lieu d'exiger que d'autres personnes utilisent vos identifiants ou les leurs pour y accéder.

    1. Obtenez l'adresse e-mail de l'agent de service Looker Studio sur la page d'aide de l'agent de service Looker Studio.

    2. Si vous utilisez le script Python pour créer le tableau de bord, créez un compte de service pour l'agent de service Looker Studio.

      Si vous utilisez Terraform, vous n'avez pas besoin de créer le compte de service manuellement. La configuration Terraform crée le compte de service lorsque vous appliquez la configuration.

  6. Si vous utilisez le script Python, assurez-vous que votre environnement Cloud Shell dispose d'une version récente de Python 3. Pour vérifier la version de Python, dans le terminal Cloud Shell, saisissez python --version, puis appuyez sur Entrée.

Créer votre copie du tableau de bord

Terraform

Pour créer votre propre copie du tableau de bord à l'aide de Terraform, vous devez d'abord cloner le dépôt GitHub qui automatise le processus. Cette étape utilise Cloud Shell, un environnement shell interactif pour Google Cloud que vous pouvez utiliser depuis votre navigateur. Terraform est préinstallé dans Cloud Shell.

De manière générale, la configuration Terraform du dépôt effectue les tâches suivantes :

  • Crée une vue BigQuery qui extrait les données de votre exportation de données de coût standards.
  • Copie le modèle de tableau de bord et connecte la copie aux vues BigQuery de vos données.
  • Fournit un lien Looker Studio vers votre copie, que vous pouvez enregistrer dans vos tableaux de bord Looker Studio.
  • Vous fournit un ID de compte de service Google Cloud, que vous utilisez comme méthode d'authentification pour le tableau de bord.

Pour créer votre tableau de bord, procédez comme suit:

  1. Ouvrez le dépôt GitHub dans Cloud Shell :

    Ouvrir dans Cloud Shell

  2. Créez un fichier de définitions de variables Terraform contenant les informations sur votre projet et votre ensemble de données BigQuery. Utilisez la commande suivante pour créer le fichier, appelé variables.tfvars:

    cat << EOF > variables.tfvars
     project-id  = "PROJECT_ID"
     bq-dashboard-dataset-name = "DATASET_NAME"
     bq-billing-export-table-id = "PROJECT_ID.DATASET_NAME.TABLE_ID"
     looker-studio-service-agent-name = "LOOKER_STUDIO_AGENT_NAME"
    EOF
    

    Les variables sont les suivantes :

    • PROJECT_ID: ID du projet qui héberge votre ensemble de données Cloud Billing.
    • DATASET_NAME : ensemble de données BigQuery contenant l'exportation des données de coût standard.
    • TABLE_ID: nom de la table BigQuery contenant l'exportation des données de facturation standards.
    • LOOKER_STUDIO_AGENT_NAME: adresse e-mail de l'agent de service Looker Studio, que vous trouverez sur la page d'aide de l'agent de service Looker Studio
  3. Pour initialiser le dépôt GitHub en tant que répertoire de travail Terraform, exécutez la commande suivante :

    terraform init
    
  4. Vous pouvez éventuellement prévisualiser les modifications apportées par la configuration Terraform, en exécutant la commande terraform plan suivante :

    terraform plan -var-file=variables.tfvars
    

    Vous serez peut-être invité à autoriser Cloud Shell à effectuer des appels d'API en votre nom.

  5. Examinez les modifications Terraform et modifiez variables.tfvars si vous devez modifier des valeurs de variable. Lorsque vous êtes prêt à créer les ressources, exécutez la commande terraform apply suivante :

    terraform apply -var-file=variables.tfvars
    

    Une fois la commande exécutée, vous obtenez le compte de service créé pour l'authentification et le lien vers votre tableau de bord Looker Studio.

  6. Copiez le nom du compte de service. Vous aurez besoin de ces informations lorsque vous configurerez l'authentification pour la source de données Looker Studio.

  7. Cliquez sur le lien Looker Studio pour ouvrir le tableau de bord.

  8. Dans Looker Studio, cliquez sur Modifier et partager pour enregistrer le tableau de bord. Lorsque vous êtes invité à examiner les paramètres d'accès aux données, cliquez sur Confirmer et enregistrer.

  9. Si vous êtes invité à ajouter des données au rapport, cliquez sur Ajouter au rapport.

Vous pouvez désormais accéder à votre tableau de bord à partir de la page d'accueil Looker Studio.

Python

Pour créer votre propre copie du tableau de bord à l'aide de Python, vous devez d'abord cloner le dépôt GitHub qui automatise le processus. Cette étape utilise Cloud Shell, un environnement shell interactif pour Google Cloud que vous pouvez utiliser depuis votre navigateur.

De manière générale, le script d'installation du dépôt effectue les tâches suivantes :

  • Crée une vue BigQuery dans l'ensemble de données contenant votre exportation de données de coût standards.
  • Copie le modèle de tableau de bord et connecte la copie aux vues BigQuery de vos données.
  • Fournit un lien Looker Studio vers votre copie, que vous pouvez enregistrer dans vos tableaux de bord Looker Studio.

Pour créer votre tableau de bord, procédez comme suit:

  1. Ouvrez le dépôt GitHub dans Cloud Shell :

    Ouvrir dans Cloud Shell

  2. Accédez au répertoire billboard :

    cd examples/billboard
    
  3. Exécutez les commandes suivantes pour configurer l'environnement Python pour le script :

    rm -rf bill-env
    python3 -m venv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. Exécutez le script qui permet de créer votre tableau de bord. Vous devrez peut-être autoriser Cloud Shell à effectuer des appels d'API en votre nom :

    python billboard.py \
      -pr 'PROJECT_ID' \
      -se 'STANDARD_BILLING_EXPORT_DATASET' \
      -bb 'BILLBOARD_DATASET'
    

    Les variables sont les suivantes :

    • PROJECT_ID : ID du projet qui héberge vos ensembles de données Cloud Billing.
    • STANDARD_BILLING_EXPORT_DATASET : ensemble de données BigQuery contenant l'exportation des données de coût d'utilisation standard.
    • BILLBOARD_DATASET: nom de l'ensemble de données BigQuery dans lequel la vue BigQuery du tableau de bord est créée, par exemple, example_dashboard_view. Si vous ne possédez pas encore d'ensemble de données pour les vues, le script crée un ensemble de données portant ce nom.

    Une fois l'exécution du script terminée, vous obtenez un lien Looker Studio vers votre tableau de bord.

  5. Cliquez sur le lien Looker Studio pour ouvrir le tableau de bord.

  6. Dans Looker Studio, cliquez sur Modifier et partager pour enregistrer le tableau de bord. Lorsque vous êtes invité à ajouter des sources de données au rapport, cliquez sur Ajouter au rapport.

Vous pouvez désormais accéder à votre tableau de bord à partir de la page d'accueil Looker Studio.

(Facultatif) Configurer les identifiants de la source de données

Par défaut, le tableau de bord "Utilisation de la facturation" utilise vos identifiants pour accéder à la source de données BigQuery. Si vous souhaitez partager le tableau de bord avec d'autres utilisateurs, nous vous recommandons d'utiliser un compte de service Google Cloud pour vous authentifier auprès de l'ensemble de données BigQuery, afin que la source de données ne dépende pas de vos identifiants.

Si vous avez utilisé Terraform pour copier le tableau de bord, vous obtenez l'ID du compte de service lorsque vous exécutez la commande terraform apply. Si vous avez utilisé le script Python, vous devez créer manuellement le compte de service en procédant comme suit :

  1. Obtenez l'adresse e-mail de l'agent de service Looker Studio sur la page d'aide de l'agent de service Looker Studio.

  2. Créez un compte de service pour l'agent de service Looker Studio.

  3. Accordez au compte de service les autorisations suivantes sur le projet qui comporte la vue BigQuery du tableau de bord:

    • bigquery.dataViewer
    • bigquery.jobUser
    • iam.serviceAccountTokenCreator

Une fois que vous disposez de l'ID du compte de service, procédez comme suit pour l'utiliser pour l'authentification :

  1. Sur la page d'accueil de Looker Studio, ouvrez le tableau de bord.

  2. Cliquez sur Modifier pour modifier le tableau de bord.

  3. Dans le menu Ressource, sélectionnez Gérer les nouvelles sources de données. Le nom de la source de données du tableau de bord commence par billing-export-view.

  4. Dans la colonne Actions de la source de données, cliquez sur Modifier.

  5. Cliquez sur Identifiants des données.

  6. Sur la page Mettre à jour les identifiants des données, sélectionnez Identifiants du compte de service, puis saisissez l'ID du compte de service.

  7. Cliquez sur Mettre à jour pour utiliser les identifiants du compte de service.

  8. Cliquez sur OK pour enregistrer les modifications apportées à la source de données.

  9. Pour afficher le tableau de bord, cliquez sur Afficher.

Mettre à jour le tableau de bord pour utiliser les libellés de votre organisation

Plusieurs graphiques du tableau de bord, comme ceux de la page Cost Reporting: Labels, sont basés sur les libellés de vos ressources. Pour obtenir une répartition précise de vos coûts par libellés spécifiques, vous devez modifier les filtres par défaut pour utiliser vos propres libellés.

  1. Sur la page d'accueil de Looker Studio, ouvrez le tableau de bord.

  2. Cliquez sur Modifier pour modifier le tableau de bord.

  3. Dans le menu Ressource, sélectionnez Gérer les filtres.

  4. Examinez les filtres basés sur labels.key et project.labels.key, et le cas échéant, cliquez sur Modifier pour remplacer les clés de libellé par celles utilisées par votre organisation.

    Par exemple, si vous utilisez la clé de libellé department pour organiser les ressources par unité commerciale, modifiez le filtre business_unit et remplacez le filtre project.labels.key par department.

  5. Cliquez sur Fermer pour terminer la modification du filtre.

Analyser vos données dans le tableau de bord

Les pages du tableau de bord Looker Studio décomposent vos données de coûts afin que vous puissiez consulter des résumés rapides de vos coûts et tendances, et obtenir des informations détaillées sur vos dépenses.

Sur la plupart des pages, vous pouvez filtrer les données par projet et utiliser le calendrier pour choisir la période pour laquelle vous souhaitez analyser les coûts.

Obtenir une vue d'ensemble de vos coûts

Utilisez la page Vue d'ensemble pour obtenir un aperçu des coûts nets pour le mois de facturation en cours et le mois précédent, les coûts de vos principaux services et les coûts quotidiens des 30 derniers jours.

Utilisez la page Tendances pour comparer vos coûts sur différentes périodes, comme le mois en cours et le mois dernier, ou le trimestre en cours et le trimestre précédent.

Utilisez la page Analyse pour analyser vos coûts au fil du temps et identifier les anomalies, comme des dépenses inhabituellement élevées ou faibles.

Identifier vos facteurs de coûts

Consultez les pages suivantes pour identifier vos dépenses les plus importantes:

  • Coût par service par mois
  • Coût par projet et par mois
  • Coût par projet, service et SKU
  • Coût par région

Pour obtenir un aperçu détaillé de vos coûts pour chaque service, consultez les pages spécifiques à chaque service. Par exemple, la page Clusters GKE affiche les coûts ventilés par vos clusters et espaces de noms GKE.

Identifier les opportunités d'économies avec les remises sur engagement d'utilisation

Les remises sur engagement d'utilisation vous permettent de bénéficier de prix réduits en échange de votre engagement à utiliser un niveau minimal de ressources pendant une période spécifiée.

Les pages sur les remises sur engagement d'utilisation du tableau de bord vous indiquent votre utilisation de Compute Engine, Cloud SQL et Memorystore qui peut être éligible à des remises sur engagement d'utilisation. Si vous disposez déjà d'une ou de plusieurs remises sur engagement d'utilisation, ces pages n'affichent que l'utilisation qui n'est pas déjà couverte par vos remises sur engagement d'utilisation existantes.

Afficher les coûts des logiciels Cloud Marketplace et des licences supplémentaires

Consultez la page Marketplace pour connaître les coûts des logiciels que vous avez achetés sur Cloud Marketplace, tels que Google Cloud NetApp Volumes.

Consultez la page Licences pour connaître le montant que vous dépensez pour des licences supplémentaires, telles que les licences pour Windows Server sur Compute Engine et les licences tierces que vous avez achetées sur Cloud Marketplace.

Afficher les coûts par libellé

Vous pouvez personnaliser les filtres du tableau de bord pour utiliser les libellés de votre organisation. Une fois les filtres mis à jour, vous pouvez utiliser les pages suivantes pour afficher vos coûts par projet et par dossier:

  • La page Par application affiche les coûts de toutes les ressources sous la clé de libellé application. Par exemple, si vous disposez d'une application Web et d'une application mobile, et que vous attribuez respectivement les étiquettes application:web et application:mobile à leurs ressources, vous pouvez consulter les coûts de chaque application séparément.

  • La page Libellés affiche vos coûts pour des libellés spécifiques, tels que le centre de coûts et le code d'établissement. Si vous avez personnalisé les filtres du tableau de bord, vous pouvez modifier les titres des graphiques pour refléter vos filtres.

(Avancé) Modifier les données de plusieurs comptes de facturation Cloud

Si vous souhaitez que le tableau de bord inclut des données provenant de plusieurs comptes de facturation Cloud, vous pouvez modifier les vues BigQuery pour inclure les exportations de données de facturation de tous les comptes de facturation Cloud.

Avant de commencer

Pour chaque compte de facturation Cloud que vous souhaitez inclure, suivez toutes les étapes des conditions préalables du tutoriel.

Mettre à jour les vues BigQuery pour inclure des exportations Cloud Billing supplémentaires

  1. Dans la console Google Cloud, ouvrez la page "BigQuery".

    Accéder à BigQuery

  2. Sélectionnez le projet contenant l'ensemble de données que vous avez créé pour le tableau de bord.

  3. Dans le panneau Explorateur, développez votre projet, puis développez l'ensemble de données.

  4. Cliquez sur la vue panneau d'affichage pour en afficher les détails. Cette vue interroge votre exportation standard des données de coût et d'utilisation.

  5. Cliquez sur l'onglet Détails, puis sur Modifier la requête. La requête concernant la vue se présente comme suit :

    SELECT *,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
       _PARTITIONDATE AS date
    from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s
    WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
    

    PROJECT_ID est le projet qui contient l'exportation des données de coût standard de BigQuery pour Cloud Billing, et BILLING_ACCOUNT_EXPORT est le nom de la table BigQuery avec vos données de coût Standard.

  6. Dupliquez la requête existante et, dans la clause FROM, remplacez l'ID du projet et la table BigQuery par des informations pour le compte de facturation Cloud supplémentaire.

  7. Ajoutez l'opérateur UNION ALL entre les deux requêtes pour combiner les données. Votre requête finale ressemble à l'exemple suivant, qui combine les exportations de données pour BILLING_ACCOUNT_1 et BILLING_ACCOUNT_2, qui se trouvent dans PROJECT_ID_1 et PROJECT_ID_2, respectivement.

    SELECT *, --query for BILLING_ACCOUNT_1
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    UNION ALL
    SELECT *, --query for BILLING_ACCOUNT_2
    COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
    COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
    PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
    _PARTITIONDATE AS date
    from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s
    WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
    
  8. Répétez ces étapes pour la vue billboard_detail, qui interroge les données détaillées de coût et d'utilisation.

  9. Si l'un de vos comptes n'est pas dans la même devise que le dollar américain, répétez ces étapes et utilisez la colonne currency_conversion_rate pour le convertir en USD, comme dans l'exemple suivant :

    select *,
      (COALESCE((SELECT SUM(x.amount)
      FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount,
        (COALESCE((SELECT SUM(x.amount)
        FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost,
        'USD' as net_cost_currency,
         PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
          _PARTITIONDATE AS date
    from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s
    WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
    

Effectuer un nettoyage

Terraform

Si vous ne souhaitez plus utiliser le tableau de bord, ouvrez à nouveau votre répertoire de travail Terraform et utilisez la commande terraform apply pour supprimer les ressources que vous avez créées.

  1. Ouvrez votre répertoire de travail Terraform dans Cloud Shell. Si vous avez utilisé le dépôt GitHub dans ce tutoriel, cliquez sur le lien suivant pour l'ouvrir :

    Ouvrir dans Cloud Shell

  2. Vous pouvez également prévisualiser les ressources supprimées en exécutant la commande terraform plan suivante :

    terraform plan -destroy
    
  3. Examinez les modifications Terraform. Lorsque vous êtes prêt à supprimer les ressources, exécutez la commande terraform apply suivante:

    terraform apply -destroy
    

Python

Si vous ne souhaitez plus utiliser le tableau de bord, clonez le dépôt GitHub et exécutez le script du tableau de bord avec l'option -clean. Le script supprime les vues BigQuery, mais conserve votre ensemble de données d'exportation BigQuery.

  1. Ouvrez le dépôt GitHub dans Cloud Shell :

    Ouvrir dans Cloud Shell

  2. Accédez au répertoire billboard :

    cd examples/billboard
    
  3. Exécutez les commandes suivantes pour configurer l'environnement Python pour le script :

    pip install virtualenv
    virtualenv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. Exécutez la commande de nettoyage :

    python billboard.py \
      -pr 'PROJECT_ID' \
      -se 'STANDARD_BILLING_EXPORT_DATASET' \
      -de 'DETAILED_BILLING_EXPORT_DATASET' \
      -bb 'BILLBOARD_DATASET' \
      -clean yes
    

    Les variables sont les suivantes :

    • PROJECT_ID : ID du projet qui héberge vos ensembles de données Cloud Billing.
    • STANDARD_BILLING_EXPORT_DATASET : ensemble de données BigQuery contenant l'exportation des données de coût d'utilisation standard.
    • DETAILED_BILLING_EXPORT_DATASET : ensemble de données BigQuery contenant l'exportation détaillée des données de coût d'utilisation.
    • BILLBOARD_DATASET : ensemble de données BigQuery dans lequel vous avez créé les vues BigQuery pour le tableau de bord.
  5. Pour supprimer le tableau de bord Looker Studio, ouvrez Looker Studio, identifiez le tableau de bord, puis accédez au menu et cliquez sur Supprimer.

Étape suivante