Afficher les rapports d'utilisation

Compute Engine permet d'exporter des rapports détaillés de votre utilisation de Compute Engine vers un bucket Google Cloud Storage à l'aide de la fonctionnalité d'exportation de l'utilisation. Les rapports d'utilisation fournissent des informations sur la durée de vie de vos ressources. Par exemple, vous pouvez voir combien d'instances de VM de votre projet exécutent un type de machine n2-standard-4 et depuis combien de temps chaque instance est exécutée. Vous pouvez également examiner l'espace de stockage d'un disque persistant et obtenir des informations sur les autres fonctionnalités de Compute Engine.

Les rapports d'utilisation ne fournissent pas d'informations sur la facturation ou l'activité, telles que des informations sur les requêtes API. Pour obtenir des informations sur la facturation, consultez la section sur la fonctionnalité d'exportation de la facturation. Pour en savoir plus sur les journaux d'activité, consultez la page sur les journaux d'activité.

Avant de commencer

Vue d'ensemble

Lorsque vous activez les rapports d'utilisation, Compute Engine fournit deux types de rapports au bucket Google Cloud Storage que vous spécifiez :

  1. Rapports d'utilisation quotidiens

    Ces rapports, qui sont fournis quotidiennement, incluent les données d'utilisation du jour précédent. Chaque rapport est un fichier distinct contenant des données de la dernière période. Les données figurant dans ces rapports sont immuables, ce qui signifie que Compute Engine ne met à jour ni ne réécrit le fichier journal en cas d'inexactitudes. À la place, les données sont corrigées dans le rapport suivant fourni au bucket.

    Le nom des rapports d'utilisation quotidiens a le format suivant :

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMMDD>.csv
    
  2. Rapport de cumul mensuel

    Un seul rapport de cumul mensuel est fourni chaque jour. Il contient des données sur l'utilisation mensuelle pour ce projet jusqu'à ce jour (celui-ci n'étant pas compris). Le rapport d'utilisation mensuel est remplacé chaque jour par de nouvelles données reflétant l'utilisation mensuelle des ressources jusqu'à cette date. Il n'y a qu'un fichier de données d'utilisation mensuelle par projet et par mois.

    Le nom des rapports de cumul mensuels a le format suivant :

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMM>.csv
    

    Les fichiers de rapport quotidiens et mensuels se ressemblent beaucoup, à l'exception du format de date. En effet, les rapports de cumul mensuels sont datés à l'aide de l'année et du mois (YYYYMM), tandis que les rapports d'utilisation quotidiens indiquent également le jour (YYYYMMDD).

Tous les rapports d'utilisation sont fournis au format CSV (valeurs séparées par une virgule), et le nom des fichiers de rapport d'utilisation est précédé de <report_prefix>. Le préfixe <report_prefix> est une valeur personnalisable choisie par l'utilisateur. Si vous ne spécifiez pas de préfixe de rapport, le préfixe usage_gce est utilisé par défaut. Toutes les heures sont indiquées selon le fuseau horaire PST (heure normale du Pacifique).

Prérequis

Avant de pouvoir utiliser la fonctionnalité d'exportation de l'utilisation de Compute Engine, vous devez :

  • être inscrit à Google Cloud Storage, si ce n'est pas déjà le cas ;
  • disposer d'un bucket pour stocker les journaux d'utilisation.

Configurer l'exportation des données d'utilisation

Lorsque vous activez pour la première fois la fonctionnalité d'exportation des données d'utilisation, le premier rapport est envoyé le jour suivant. Il détaille l'utilisation pour le jour précédent. Vous recevez ensuite des rapports toutes les 24 heures.

Pour configurer la fonctionnalité d'exportation de l'utilisation, activez-la dans l'outil gcloud compute. Lorsque vous activez cette fonctionnalité, vous devez définir deux propriétés :

  1. Le bucket Google Cloud Storage auquel vous souhaitez fournir les rapports.

    Vous pouvez sélectionner n'importe quel bucket Cloud Storage dont vous êtes propriétaire, y compris ceux issus de projets différents. Ce bucket doit exister avant que vous ne commenciez à exporter des rapports, et vous devez y avoir accès en tant que propriétaire. L'utilisation de Google Cloud Storage est facturée. Vous devez donc consulter la grille tarifaire de Cloud Storage pour connaître le montant des frais que ce service peut entraîner.

    Tout utilisateur disposant d'un accès en lecture au bucket Cloud Storage peut afficher les rapports d'utilisation dans ce dernier. Si un utilisateur dispose d'un accès en écriture au bucket, il peut y créer, afficher et modifier les fichiers existants. Pour plus d'informations, consultez la section Contrôle des accès.

  2. Le préfixe de rapport pour vos fichiers

    Vous pouvez spécifier le préfixe de rapport à employer pour vos rapports d'utilisation. Ce préfixe sera inséré dans leur nom. Par exemple, si vous spécifiez "my-cool-project-report" comme préfixe de rapport, le format du nom de fichier est de type "my-cool-project-report_1234567890_20131230.csv". Si vous ne spécifiez pas de préfixe de rapport, le préfixe par défaut "usage_gce" est utilisé.

Une fois que vous avez choisi ces deux propriétés, vous pouvez activer la fonctionnalité d'exportation des données d'utilisation comme suit :

Console

  1. Accédez à la page Paramètres de Compute Engine.

    Accéder à la page Paramètres de Compute Engine

  2. Cochez la case Activer l'exportation de l'utilisation.

  3. Remplissez le champ vous demandant de saisir un nom de bucket. Si vous le souhaitez, vous pouvez fournir un préfixe de rapport. Si vous ne renseignez pas le champ de préfixe de rapport, le préfixe par défaut usage_gce est utilisé. Tous les rapports d'utilisation envoyés au bucket seront nommés avec ce préfixe.

  4. Cliquez sur Save.

gcloud

Dans gcloud compute, exécutez la commande gcloud compute project-info set-usage-bucket pour activer cette fonctionnalité :

 gcloud compute project-info set-usage-bucket --bucket [BUCKET_NAME] [--prefix [PREFIX]]

Où :

  • [BUCKET_NAME] correspond au nom d'un bucket existant qui recevra les rapports d'utilisation. Il doit être au format gs://<bucket-name> ou https://storage.googleapis.com/<bucket-name>. L'utilisateur qui exécute cette commande doit être propriétaire du bucket.
  • [PREFIX] correspond au préfixe facultatif pour les noms des rapports d'utilisation. Si aucune valeur n'est spécifiée, le préfixe par défaut est usage_gce.

API

Bibliothèques clientes

À l'aide des bibliothèques clientes, définissez la méthode setUsageExportBucket() dans la collection Projects pour activer l'exportation de l'utilisation. Par exemple, dans la bibliothèque cliente Python, vous pouvez activer la fonctionnalité comme suit :

def setUsageExport(gce_service, auth_http):
  body = {
    "bucketName": "https://storage.googleapis.com/usage-export-sample",
    "reportNamePrefix": "exampleprefix"
  }

request = gce_service.projects().setUsageExportBucket(project=PROJECT_ID, body=body)
response = request.execute(http=auth_http)

print response

HTTP (Protocole HTTP)

Vous pouvez également envoyer directement une requête HTTP à la méthode setUsageExportBucket. L'exemple suivant utilise la bibliothèque httplib2 pour activer l'exportation de l'utilisation :

#!/usr/bin/python

import urllib
import argparse
import logging
import sys
import random
from json import load,dumps
...

PROJECT_ID = "myproject"
API_VERSION = "v1"
API_URL = "https://www.googleapis.com/compute/" + API_VERSION + "/projects/" + PROJECT_ID
OAUTH_FILE = "oauth-dev.dat"

def main(argv):
  logging.basicConfig(level=logging.INFO)

  parser = argparse.ArgumentParser(
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    parents=[tools.argparser])

  # Parse the command-line flags.
  flags = parser.parse_args(argv[1:])

  http = httplib2.Http()

  # Add code to authenticate to the service
  ....

  url = API_URL + "/setUsageExportBucket"

  body = {
    "bucketName": "https://storage.googleapis.com/usage-export-sample",
    "reportNamePrefix": "exampleprefix"
  }

  formattedBody = dumps(body)
  resp,content = http.request(url,
                              "POST",
                              headers=listOfHeaders,
                              body=formattedBody)

  print str(content)

if __name__ == "__main__":
    main(sys.argv)

Pour plus d'informations, consultez la documentation de référence sur les API.

Télécharger des rapports d'utilisation exportés

Une fois que vous avez commencé à recevoir des rapports d'utilisation dans votre bucket, téléchargez-les comme vous le feriez pour d'autres objets à partir de Cloud Storage. Pour en savoir plus, consultez la page Télécharger des objets.

Métriques acceptées

Les rapports d'utilisation quotidiens fournissent des informations sur l'utilisation des ressources suivantes :

  • Machines virtuelles
  • Disques persistants
  • Images
  • Instantanés
  • Adresses IP statiques
  • Équilibreurs de charge

Chaque ressource est décrite à l'aide des métriques suivantes :

Nom de la métrique Propriétés de la métrique
Date du rapport
  • Type de métrique : chaîne
  • Description : date d'utilisation.
  • Exemple : 2019-08-15
MeasurementId
  • Type de métrique : chaîne
  • Description : ID du type de ressource en cours de mesure. Par exemple, VmimageE2Standard_2 pour représenter un e2-standard-2 type de machine.
  • Exemple : com.google.cloud/services/compute‑engine/VmimageE2Standard_2
Quantité
  • Type de métrique : entier
  • Description : quantité utilisée pour la date spécifiée.
  • Exemple : 86 400
Unité
  • Type de métrique : chaîne
  • Description : type d'unité, par exemple des secondes, des heures, la comptabilisation d'une valeur, etc.
  • Exemple : secondes
URI de ressource
  • Type de métrique : chaîne
  • Description : URI de la ressource spécifiée.
  • Exemple : https://compute.googleapis.com/compute/v1/projects/<project‑id>/zones/<zone>/instances/<instance>
ResourceId
  • Type de métrique : entier
  • Description : ID numérique identifiant la ressource spécifique.
  • Exemple : 16557630484925648021
Emplacement
  • Type de métrique : chaîne
  • Description : zone de la ressource. Nom de zone ou de région, ou GLOBAL pour les ressources globales.
  • Exemple : us-central1-a

Un exemple d'entrée dans le rapport pourrait ressembler à ceci :

Date du rapport MeasurementId Quantité Unité URI de ressource ID de ressource Emplacement
02/13/2019 com.google.cloud/services/compute-engine/VmimageE2Standard_2 86400 secondes https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance 16557630484 us-central1-a

Contrôle des accès

Lorsque vous activez la fonctionnalité d'exportation des données d'utilisation pour un bucket Cloud Storage, Compute Engine s'ajoute automatiquement au bucket avec un accès en écriture afin de fournir les rapports d'utilisation. Tant que Compute Engine a accès au bucket et que la fonctionnalité est activée, Compute Engine continue d'exporter les rapports d'utilisation vers le bucket Cloud Storage spécifié.

Si vous voyez que l'identité suivante a été ajoutée à la liste de contrôle d'accès (LCA) d'un bucket, cela signifie que Compute Engine a accès à ce dernier :

cloud-cluster-analytics-export@google.com

Tout utilisateur propriétaire du projet dispose d'un accès total au bucket Google Cloud Storage. Les autres utilisateurs, tels que les rédacteurs et les lecteurs, ont différents niveaux d'accès au bucket. Pour en savoir plus sur les LCA d'un bucket, consultez la documentation relative au contrôle des accès dans Cloud Storage.

Si vous désactivez la fonctionnalité d'exportation des données d'utilisation, Compute Engine supprime automatiquement son accès en écriture au bucket. Si vous modifiez les autorisations sur le compte cloud-cluster-analytics-export@google.com, puis désactivez la fonctionnalité d'exportation des données d'utilisation, Compute Engine désactive cette même fonctionnalité, mais ne supprime pas le compte de la liste d'accès au projet. Vous pouvez choisir de supprimer le compte manuellement si vous le souhaitez.

Vérifier si les rapports d'utilisation sont activés

Pour vérifier les paramètres d'exportation des données d'utilisation d'un projet, obtenez des informations sur ce dernier :

gcloud compute project-info describe

Repérez le champ usageExportLocation :

+-------------------------+----------------------------------------------------+
| name                    | myproject                                          |
| description             |                                                    |
| creation-time           | 2019-10-18T16:31:52.308-07:00                      |
| usage                   |                                                    |
|   snapshots             | 1.0/1000.0                                         |
|   networks              | 2.0/2.0                                            |
|   firewalls             | 3.0/10.0                                           |
|...                      |                                                    |
| usageExportLocation     |                                                    |
|   bucketName            | https://storage.googleapis.com/usage-export-sample |
|   reportNamePrefix      |                                                    |
+-------------------------+----------------------------------------------------+

Désactiver les rapports d'utilisation

Lorsque vous désactivez les rapports d'utilisation, Compute Engine supprime automatiquement son accès en écriture au bucket Cloud Storage et cesse d'envoyer de nouveaux rapports.

Console

  1. Accédez à la page Paramètres de Compute Engine.

    Accéder à la page Paramètres de Compute Engine

  2. Décochez la case Activer l'exportation de l'utilisation pour désactiver l'exportation de l'utilisation.

gcloud

Dans gcloud compute, désactivez la fonctionnalité d'exportation des données d'utilisation en exécutant la commande gcloud compute project-info set-usage-bucket avec l'option --no-bucket :

gcloud compute project-info set-usage-bucket --no-bucket

API

Bibliothèques clientes

Pour utiliser les bibliothèques clientes, envoyez une requête à la méthode setUsageExportBucket(), avec un nom de bucket vide. Par exemple, dans la bibliothèque cliente Python, vous pouvez désactiver la fonctionnalité comme suit :

def disableUsageExport(gce_service, auth_http):
  body = {
    "bucketName": "",
}

request = gce_service.projects().setUsageExportBucket(project=PROJECT_ID, body=body)
response = request.execute(http=auth_http)

print response

HTTP (Protocole HTTP)

Vous pouvez également envoyer directement une requête HTTP à la méthode setUsageExportBucket. L'exemple suivant fait appel à la bibliothèque httplib2 pour demander la désactivation du bucket d'exportation des données d'utilisation :

#!/usr/bin/python

import urllib
import argparse
import logging
import sys
import random
from json import load,dumps
...

PROJECT_ID = "myproject"
API_VERSION = "v1"
API_URL = "https://www.googleapis.com/compute/" + API_VERSION + "/projects/" + PROJECT_ID
OAUTH_FILE = "oauth-dev.dat"

def main(argv):
  logging.basicConfig(level=logging.INFO)

  parser = argparse.ArgumentParser(
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    parents=[tools.argparser])

  # Parse the command-line flags.
  flags = parser.parse_args(argv[1:])

  http = httplib2.Http()

  # Add code to authenticate to the service
  ....

  url = API_URL + "/setUsageExportBucket"

  body = {
     "bucketName": ""
  }

  formattedBody = dumps(body)
  resp,content = http.request(url,
                              "POST",
                              headers=listOfHeaders,
                              body=formattedBody)

  print str(content)

if __name__ == "__main__":
    main(sys.argv)

Étapes suivantes