L'API App Optimize vous aide à analyser vos données d'utilisation des coûts et des ressources en générant des rapports. Pour obtenir ces informations, vous devez d'abord créer un rapport en envoyant une requête d'API. Dans cette requête, vous définissez le champ d'application des données, la façon dont elles doivent être agrégées ou regroupées, et les filtres à appliquer.
Lorsque le rapport est prêt, vous pouvez lire les données.
Pour en savoir plus sur les combinaisons valides de ces paramètres, ainsi que sur les filtres, métriques et dimensions disponibles, consultez À propos des rapports.
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 un rapport à l'aide de ce guide, 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 Monitoring (
roles/monitoring.viewer) -
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
Les étapes suivantes décrivent comment lancer la création d'un rapport. Cet exemple crée un rapport pour vous aider à comprendre les coûts et l'utilisation moyenne du processeur du projet choisi au cours de la semaine dernière. Le rapport détaille ces informations pour chaque ressource individuelle, y compris son type, le produit Google Cloud auquel elle appartient et son emplacement.
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 un rapport, procédez comme suit :
Exécutez la commande
curlsuivante pour envoyer la requête. Le corps de la requête contient la définition du rapport, y compris le champ d'application, les dimensions, les métriques et les filtres demandés.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", "resource", "resource_type" ], "metrics": [ "cost", "cpu_mean_utilization" ], "filter": "hour >= now - duration(\"168h\")" }' \ "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 exemple,my-resource-cost-report-1).
L'API renvoie un objet d'opération de longue durée (LRO). Notez le champ
namedans la réponse. Vous l'utiliserez pour vérifier l'état de l'opération :{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }Dans la réponse, le champ
doneest défini surfalse, ce qui indique que la génération du rapport est en cours.Pour vérifier si le rapport est prêt, envoyez une requête HTTP
GETà l'opérationnamerenvoyée à l'étape précédente :curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Remplacez
PROJECT_IDetOPERATION_IDpar les valeurs de la réponse LRO.Examinez la réponse pour déterminer l'état de l'opération :
- Si le rapport est toujours en cours de génération, la réponse ressemblera à la réponse LRO initiale, avec
donedéfini surfalse. Vous devez patienter un court instant, par exemple entre 5 et 15 secondes, puis relancer l'interrogation en répétant cette étape. Une fois la génération du rapport terminée, la réponse inclut
"done": trueet la ressource de rapport dans le champresponse:{ "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", "dimensions": [ "location", "product_display_name", "project", "resource", "resource_type" ], "scopes": [ { "project": "projects/PROJECT_ID" } ], "filter": "hour >= now - duration(\"168h\")", "expireTime": "2026-02-05T18:50:25.273833857Z", "metrics": [ "cost", "cpu_mean_utilization" ] } }Si l'opération de longue durée rencontre une erreur, la réponse contiendra un champ
errorau lieu du champresponse, fournissant des détails sur l'échec.
- Si le rapport est toujours en cours de génération, la réponse ressemblera à la réponse LRO initiale, avec
Une fois l'opération terminée, vous pouvez lire les données du rapport.
Limites de simultanéité
Lorsque vous créez un rapport, l'API App Optimize récupère les données de coût de Cloud Billing et les données d'utilisation de Cloud Monitoring pour chaque target_project du rapport.
- Pour un rapport limité à un seul projet, ce projet est le projet cible.
- Pour une application App Hub, chaque projet contenant un service ou une charge de travail dans l'application est un projet cible.
L'API App Optimize applique un quota de simultanéité appelé Opérations Concurrent CreateReport, qui autorise un maximum de 10 requêtes simultanées pour les données de rapport par projet cible. Lorsque vous créez un rapport, l'API App Optimize calcule le nombre de projets cibles dans le rapport et bloque le nombre d'unités de quota requis jusqu'à ce que l'opération de longue durée pour la création du rapport soit terminée.
Les rapports qui se terminent en moins de quelques minutes peuvent ne pas être comptabilisés dans votre limite de simultanéité en raison du timing de mesure au niveau du système.
Vous pouvez consulter votre activité d'API actuelle et gérer ces limites sur la page Quotas et limites du système de la console Google Cloud .
Si vous prévoyez de créer plusieurs rapports simultanément, réfléchissez au moment où vos équipes exécutent des rapports et à la structure de vos applications App Hub :
- Si plusieurs équipes exécutent des rapports incluant les mêmes projets cibles, vous pouvez échelonner les heures de début de la création de rapports pour chaque équipe.
- Les applications peuvent inclure des ressources provenant de plusieurs projets, et plusieurs applications peuvent utiliser des ressources provenant d'un même projet. La création simultanée de rapports pour ces types d'applications entraîne plusieurs requêtes vers les projets cibles.
Prenons l'exemple d'une équipe qui travaille sur une suite d'applications pour l'apprentissage des arts créatifs, avec des variantes standards et premium. Le tableau suivant présente la liste des applications dans la première colonne. Dans les colonnes restantes, l'icône en forme de coche () indique qu'un projet contient des services ou des charges de travail pour une application listée.
| Application | common-project | dance-project | draw-project | animate-project | music-project |
|---|---|---|---|---|---|
| dance-app | |||||
| draw-app | |||||
| music-app | |||||
| animate-app | |||||
| choreograph-app | |||||
| storyteller-app | |||||
| dance-premium-app | |||||
| draw-premium-app | |||||
| music-premium-app | |||||
| animate-premium-app | |||||
| choreograph-premium-app | |||||
| storyteller-premium-app |
Si vous créez des rapports sur les données de coût et d'utilisation pour toutes les applications listées en même temps, l'API App Optimize utilise plusieurs unités de votre limite de simultanéité dans certains projets. En particulier, le projet partagé common-project reçoit 12 demandes de données sur les coûts et l'utilisation. Comme ce nombre dépasse la limite de simultanéité, deux requêtes de données échoueront.
Pour éviter ce problème, l'équipe peut d'abord générer des rapports pour les versions standards des applications, puis pour la version Premium.
Étapes suivantes
- Pour comprendre les dimensions, les métriques et les filtres, consultez À propos des rapports.
- Découvrez d'autres façons de gérer les rapports :