Cómo leer los datos de un informe

Después de que la API de App Optimize crea un informe, recuperas los datos de costos y utilización del informe. Esta operación descarga la información como columnas y filas, estructurada según las dimensiones y métricas que especificaste cuando solicitaste el informe.

Esta solicitud a la API es diferente de la obtención de los metadatos de un informe, que solo devuelve la configuración del informe.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Verifica que tengas los permisos necesarios para completar esta guía.

  6. Instala Google Cloud CLI.

  7. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  8. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  9. Verifica que tengas los permisos necesarios para completar esta guía.

Roles obligatorios

Para obtener los permisos que necesitas para leer los datos de un informe, pídele a tu administrador que te otorgue el rol de IAM de visualizador de App Optimize (roles/appoptimize.viewer) en el proyecto propietario del recurso del informe. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Leer datos del informe

Para leer datos de un informe completado con la API de REST, envía una solicitud HTTP POST al extremo :read del informe.

  1. Usa el siguiente comando curl para leer la primera página de los datos del informe:

    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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del Google Cloud proyecto que posee el recurso del informe que deseas leer.
    • REPORT_ID: ID del informe que se leerá. Este ID se especificó cuando se creó el informe y se puede obtener enumerando los informes.
    • PAGE_SIZE: Es la cantidad máxima de filas que se mostrarán por página. El servidor devuelve un máximo de 1,000 filas por página, incluso si especificas un valor mayor. Las respuestas también están sujetas a un límite de tamaño de 10 MB, por lo que es posible que se devuelvan menos filas para no superar ese límite. Si se omite pageSize, se usa un tamaño predeterminado.
  2. Si la solicitud se realiza correctamente, la API devuelve una respuesta en formato JSON que contiene el esquema y las filas del informe. Esta es una respuesta correcta de ejemplo:

    {
      "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 comprender los valores del campo cost, consulta Cómo interpretar las métricas de costos. Para obtener más información sobre los datos y comprender sus limitaciones, consulta Cómo comprender los datos.

  3. Si la respuesta incluye un campo nextPageToken, el informe contiene filas adicionales. Para recuperar la siguiente página de resultados, haz otra solicitud a POST que incluya este token en el campo pageToken del cuerpo 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"
    

    Reemplaza lo siguiente:

    • NEXT_PAGE_TOKEN: Es el valor de nextPageToken que se recibió en la respuesta anterior.
    • PAGE_SIZE: Es la cantidad máxima de filas que se devolverán por página. Si bien puedes cambiar este valor entre solicitudes de página, se siguen aplicando los límites del servidor.

    Repite este proceso hasta que la respuesta ya no contenga un nextPageToken, lo que indica que recuperaste todos los datos del informe.

¿Qué sigue?