Créer et lire un rapport
Découvrez comment créer un rapport sur les dépenses de votre Google Cloudavec l'API App Optimize, surveiller la génération du rapport et lire les données obtenues lorsqu'elles sont disponibles. Dans ce guide de démarrage rapide, vous utilisez l'API REST.
Avant de commencer
-
Les exemples de ce guide nécessitent un projet avec des ressources actives à analyser. Google Cloud L'API App Optimize a besoin de données de facturation et d'utilisation pour produire des résultats pertinents. Les rapports exécutés sur des projets nouveaux ou vides seront vides.
Ce projet est choisi par vous et est identifié par PROJECT_ID. Pour plus de simplicité, dans ce guide, votre projet hébergera la ressource de rapport et fournira le champ d'application des données.
L'API App Optimize permet de créer des rapports dans un projet qui analyse les données d'un autre projet source ou d'applications dans des limites au niveau d'un seul projet ou d'un dossier. Si vous générez un rapport sur une application App Hub, qui peut être constituée de plusieurs projets, vous devez disposer des autorisations de surveillance et de facturation requises sur tous les projets associés à l'application pour créer le rapport.
-
Assurez-vous que l'API App Optimize est activée pour le projet que vous utiliserez pour créer et gérer la ressource de rapport. Dans les exemples de cette documentation, il s'agit du projet identifié par
PROJECT_ID. - Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et lire un rapport à l'aide de ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet avec des ressources actives :
-
Administrateur App Optimize (
roles/appoptimize.admin) -
Lecteur (
roles/viewer) ou un autre rôle accordantbilling.resourceCosts.get
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les autorisations et les rôles requis pour l'API App Optimize, consultez Contrôle des accès avec IAM.
Créer un rapport
Cet exemple crée un rapport sur les dépenses totales dans votre PROJECT_ID. Le rapport détaille les coûts pour chaque produitGoogle Cloud utilisé, comme Compute Engine et Cloud Storage, ainsi que pour le code SKU et l'emplacement spécifiques. Le rapport couvre les données des trois derniers jours.
Pour créer la ressource de rapport, envoyez une requête HTTP POST au chemin d'accès de la ressource projects.locations.reports de l'API REST.
Pour créer le rapport, procédez comme suit :
Exécutez la commande
curlsuivante pour envoyer la requête :curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")" }' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?report_id=REPORT_ID"Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .REPORT_ID: ID unique de votre nouveau rapport, par exemplemy-first-report
L'API renvoie un objet d'opération de longue durée (LRO), qui représente le processus de génération du rapport. Voici un exemple de réponse :
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }L'état
"done": falseindique que le rapport est toujours en cours de génération. Notez la valeur deOPERATION_ID, car vous en aurez besoin à l'étape suivante.Étant donné que la génération de rapports peut prendre du temps, vous devez interroger l'opération de longue durée jusqu'à ce qu'elle indique que le processus de génération est terminé et que les données du rapport sont prêtes à être téléchargées.
Pour vérifier l'état du processus de génération, envoyez une requête HTTP
GETau nom de ressource de l'opération :curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Examinez la réponse. Si
"done"est défini surfalse, patientez entre 5 et 15 secondes, puis répétez cette étape. Si"done"esttrue, le rapport est prêt.Voici un exemple de réponse une fois l'opération terminée :
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.Report", "name": "projects/PROJECT_ID/locations/global/reports/REPORT_ID", "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")", "expireTime": "2026-02-04T22:05:05Z" } }
Lire les données du rapport
Pour récupérer les données du rapport, utilisez la méthode personnalisée :read une fois l'opération de longue durée terminée :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
La réponse contient les lignes de données du rapport et les définitions de colonnes. Voici un exemple de réponse positive :
{
"rows": [
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "25",
"nanos": 750000000
}
],
[
"us-central1",
"Cloud Storage",
"projects/PROJECT_ID",
"9ADA-9ADC-2FBE",
{
"currency_code": "USD",
"units": "5",
"nanos": 100000000
}
],
[
"europe-west1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "18",
"nanos": 500000000
}
],
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"F61D-4D51-AAFC",
{
"currency_code": "USD",
"units": "12",
"nanos": 200000000
}
]
],
"columns": [
{
"name": "location",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "product_display_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "project",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "sku",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "cost",
"type": "RECORD",
"mode": "NULLABLE",
"columns": [
{
"name": "currency_code",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "units",
"type": "INT64",
"mode": "NULLABLE"
},
{
"name": "nanos",
"type": "INT64",
"mode": "NULLABLE"
}
]
}
],
"next_page_token": ""
}
Les rapports comportant de nombreuses lignes sont paginés. Pour gérer plusieurs pages, consultez Lire les données d'un rapport.
Pour comprendre les valeurs du champ cost, consultez Interpréter les métriques de coût.
Pour en savoir plus sur les données et leurs limites, consultez Comprendre les données.
Effectuer un nettoyage
L'API App Optimize supprime automatiquement votre rapport 24 heures après sa création. Pour supprimer le rapport plus tôt, envoyez une requête HTTP DELETE au point de terminaison de la ressource du rapport :
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID"
Étapes suivantes
- En savoir plus sur les rapports
- Découvrez d'autres façons de gérer les rapports :
- Consultez la présentation de l'API App Optimize.