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

gcloud

  • Instale a CLI do Google Cloud.

  • Configure a CLI gcloud para usar sua identidade federada.

    Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.

  • Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  • Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:

    gcloud components update
    gcloud components install beta
  • Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código executado em Google Cloud na documentação de autenticação do Google Cloud .

    Python

    1. Instale a biblioteca de cliente Python para a App Optimize API.
    2. Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.

      1. Instale a CLI do Google Cloud.

      2. Configure a CLI gcloud para usar sua identidade federada.

        Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.

      3. Crie credenciais de autenticação local para sua conta de usuário:

        gcloud auth application-default login

        Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

      Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .

      Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código executado em Google Cloud na documentação de autenticação do Google Cloud .

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.

      Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

    Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código executado em Google Cloud na documentação de autenticação do Google Cloud .

    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 do IAM Leitor do App Optimize (roles/appoptimize.viewer) 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, siga as instruções do seu método preferido:

    gcloud

    Use o comando gcloud beta app-optimize reports read para buscar os dados de um relatório.

    gcloud beta app-optimize reports read REPORT_ID \
      --project=PROJECT_ID \
      --location=global
    

    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.

    O comando gcloud processa a paginação automaticamente, retornando todos os recursos solicitados.

    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.

    Python

    O código Python a seguir usa AppOptimizeClient.read_report() para ler os dados de um relatório.

    from google.cloud import appoptimize_v1beta
    
    project_id = "PROJECT_ID"
    report_id = "REPORT_ID"
    
    # Create the App Optimize client and read a report's data
    client = appoptimize_v1beta.AppOptimizeClient()
    request = appoptimize_v1beta.ReadReportRequest(
        name=f"projects/{project_id}/locations/global/reports/{report_id}"
    )
    result = client.read_report(request=request)
    
    # Display the report data
    print(result)
    

    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.

    A biblioteca de cliente processa a paginação automaticamente, gerando resultados do iterador.

    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.

    REST

    Envie uma solicitação HTTP POST para o método personalizado :read da API REST.

    1. Use o seguinte comando curl para enviar essa solicitação e ler a primeira página dos 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 vai conter 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