Lire les données d'un rapport

Une fois que l'API App Optimize a créé un rapport, vous récupérez les données de coûts et d'utilisation de ce rapport. Cette opération télécharge ces informations sous forme de colonnes et de lignes, structurées en fonction des dimensions et des métriques que vous avez spécifiées lorsque vous avez demandé votre rapport.

Cette requête d'API est différente de l'obtention des métadonnées d'un rapport, qui ne renvoie que les paramètres de configuration du rapport.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. 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.
  2. Installez la Google Cloud CLI.

  3. 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.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.

  6. Installez la Google Cloud CLI.

  7. 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.

  8. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  9. Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour lire les données d'un rapport, demandez à votre administrateur de vous accorder le rôle IAM Lecteur App Optimize (roles/appoptimize.viewer) sur le projet qui possède la ressource de rapport. 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.

Lire les données du rapport

Pour lire les données d'un rapport terminé à l'aide de l'API REST, envoyez une requête HTTP POST au point de terminaison :read du rapport.

  1. Utilisez la commande curl suivante pour lire la première page des données du rapport :

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du Google Cloud projet qui possède la ressource de rapport que vous souhaitez lire.
    • REPORT_ID: ID du rapport à lire. Cet ID a été spécifié lors de la création du rapport et peut être obtenu en listant les rapports.
    • PAGE_SIZE: nombre maximal de lignes à afficher par page. Le serveur renvoie un maximum de 1 000 lignes par page, même si vous spécifiez une valeur plus élevée. Les réponses sont également soumises à une limite de taille de 10 Mo. Par conséquent, moins de lignes peuvent être renvoyées pour respecter cette limite. Si pageSize est omis, une taille par défaut est utilisée.
  2. Si la requête aboutit, l'API renvoie une réponse JSON contenant le schéma et les lignes du rapport. Voici un exemple de réponse positive :

    {
      "rows": [
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-1",
          {
            "currency_code": "USD",
            "units": "106",
            "nanos": 321590000
          }
        ],
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-2",
          {
            "currency_code": "USD",
            "units": "797",
            "nanos": 641691000
          }
        ]
      ],
      "columns": [
        {
          "name": "application",
          "type": "STRING"
        },
        {
          "name": "cost",
          "type": "RECORD",
          "columns": [
            {
              "name": "currency_code",
              "type": "STRING"
            },
            {
              "name": "units",
              "type": "INT64"
            },
            {
              "name": "nanos",
              "type": "INT64"
            }
          ]
        }
      ],
      "nextPageToken": "AABBCCddeeffGGHHiiJJkkLL"
    }
    

    Pour comprendre les valeurs du champ cost, consultez Interpréter les métriques de coûts. Pour en savoir plus sur les données et comprendre leurs limites, consultez Comprendre les données.

  3. Si la réponse inclut un champ nextPageToken, le rapport contient des lignes supplémentaires. Pour récupérer la page de résultats suivante, effectuez une autre requête POST qui inclut ce jeton dans le champ pageToken du corps JSON :

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageToken": "NEXT_PAGE_TOKEN", "pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    Remplacez les éléments suivants :

    • NEXT_PAGE_TOKEN: valeur du nextPageToken reçu dans la réponse précédente.
    • PAGE_SIZE: nombre maximal de lignes à afficher par page. Bien que vous puissiez modifier cette valeur entre les requêtes de page, les limites côté serveur s'appliquent toujours.

    Répétez ce processus jusqu'à ce que la réponse ne contienne plus de nextPageToken, ce qui indique que vous avez récupéré toutes les données du rapport.

Étape suivante