Ler os dados de um relatório

Depois que a API App Optimize cria um relatório, você extrai os dados de custo e utilização dele. Essa operação baixa as informações como colunas e linhas, estruturadas de acordo com as dimensões e métricas especificadas ao solicitar o relatório.

Essa solicitação de API é diferente de receber os metadados de um relatório, que só retorna as configurações de configuração do relatório.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a CLI do Google Cloud.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  4. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  5. Verifique se você tem as permissões necessárias para concluir este guia.

  6. Instale a CLI do Google Cloud.

  7. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  8. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  9. Verifique se você tem as permissões necessárias para concluir este guia.

Funções exigidas

Para receber as permissões necessárias para ler os dados de um relatório, peça ao administrador para conceder a você o papel Leitor do App Optimize (roles/appoptimize.viewer) do IAM no projeto que possui o recurso de relatório. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Ler dados do relatório

Para ler dados de um relatório concluído usando a API REST, envie uma solicitação HTTP POST ao endpoint :read do relatório.

  1. Use o comando curl a seguir para ler a primeira página de dados do relatório:

    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"
    

    Substitua:

    • PROJECT_ID: o ID do Google Cloud projeto que tem o recurso de relatório que você quer ler.
    • REPORT_ID: o ID do relatório a ser lido. Esse ID foi especificado quando o relatório foi criado e pode ser obtido listando os relatórios.
    • PAGE_SIZE: o número máximo de linhas a serem retornadas por página. O servidor retorna no máximo 1.000 linhas por página, mesmo que você especifique um valor maior. As respostas também estão sujeitas a um limite de tamanho de 10 MB. Portanto, menos linhas podem ser retornadas para ficar dentro desse limite. Se pageSize for omitido, um tamanho padrão será usado.
  2. Se a solicitação for bem-sucedida, a API vai retornar uma resposta JSON com o esquema e as linhas do relatório. Confira um exemplo de resposta bem-sucedida:

    {
      "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"
    }
    

    Para entender os valores no campo cost, consulte Como interpretar métricas de custo. Para mais informações sobre os dados e entender as limitações deles, consulte Entender os dados.

  3. Se a resposta incluir um campo nextPageToken, o relatório terá mais linhas. Para recuperar a próxima página de resultados, faça outra solicitação POST que inclua esse token no campo pageToken do corpo 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"
    

    Substitua:

    • NEXT_PAGE_TOKEN: o valor do nextPageToken recebido na resposta anterior.
    • PAGE_SIZE: o número máximo de linhas a serem retornadas por página. Embora seja possível mudar esse valor entre solicitações de página, os limites do lado do servidor ainda se aplicam.

    Repita esse processo até que a resposta não contenha mais um nextPageToken, indicando que você recuperou todos os dados do relatório.

A seguir