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

gcloud

En la consola de Google Cloud , activa Cloud Shell.

Activa Cloud Shell

En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

Para obtener información sobre cómo configurar la autenticación para un entorno de producción, consulta Configura las credenciales predeterminadas de la aplicación para el código que se ejecuta en Google Cloud en la documentación de autenticación de Google Cloud .

Python

  1. Instala la biblioteca cliente de Python para la API de App Optimize.
  2. Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    1. Instala Google Cloud CLI.

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

    3. Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:

      gcloud auth application-default login

      No es necesario que lo hagas si usas Cloud Shell.

      Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .

    Para obtener información sobre cómo configurar la autenticación para un entorno de producción, consulta Configura las credenciales predeterminadas de la aplicación para el código que se ejecuta en Google Cloud en la documentación de autenticación de Google Cloud .

REST

Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

    Instala Google Cloud CLI.

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

Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Para obtener información sobre cómo configurar la autenticación para un entorno de producción, consulta Configura las credenciales predeterminadas de la aplicación para el código que se ejecuta en Google Cloud en la documentación de autenticación de Google Cloud .

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 los datos de un informe completado, sigue las instrucciones del método que prefieras:

gcloud

Usa el comando gcloud beta app-optimize reports read para recuperar los datos de un informe.

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

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.

El comando gcloud controla la paginación de forma automática y devuelve todos los recursos solicitados.

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.

Python

El siguiente código de Python usa AppOptimizeClient.read_report() para leer los datos de un informe.

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)

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.

La biblioteca cliente controla la paginación automáticamente y genera resultados del iterador.

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.

REST

Envía una solicitud POST HTTP al método personalizado :read de la API de REST.

  1. Usa el siguiente comando curl para enviar esa solicitud y 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 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?