Cómo crear y leer un informe
Obtén información para crear un informe de la API de App Optimize sobre tu Google Cloudinversión, supervisar la generación del informe y leer los datos resultantes cuando estén listos para ti. En esta guía de inicio rápido, usarás la API de REST.
Antes de comenzar
-
Los ejemplos de esta guía requieren un Google Cloud proyecto con recursos activos Google Cloud para analizar. La API de App Optimize necesita datos de facturación y utilización para producir resultados significativos. Los informes que se ejecuten en proyectos nuevos o vacíos estarán vacíos.
Tú eliges este proyecto, que se identifica con PROJECT_ID. Para simplificar las cosas, en esta guía, tu proyecto alojará el recurso del informe y proporcionará el alcance de los datos.
La API de App Optimize admite la creación de informes en un proyecto que analiza datos de otro proyecto fuente o de aplicaciones en límites de un solo proyecto o a nivel de la carpeta. Si generas un informe sobre una aplicación de App Hub, que puede estar compuesta por varios proyectos, debes tener los permisos de supervisión y facturación necesarios en todos los proyectos asociados de la aplicación para crear el informe.
-
Asegúrate de que la API de App Optimize esté habilitada para el proyecto que usarás para crear y administrar el recurso del informe. En los ejemplos de esta documentación, este es el proyecto identificado por
PROJECT_ID. - 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.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Verifica que tengas los permisos necesarios para completar esta guía.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Verifica que tengas los permisos necesarios para completar esta guía.
Roles obligatorios
Si quieres obtener los permisos que necesitas para crear y leer un informe con esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto con recursos activos:
-
Administrador de App Optimize (
roles/appoptimize.admin) -
Visualizador (
roles/viewer) (o cualquier otro rol que otorguebilling.resourceCosts.get)
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.
Para obtener más información sobre los permisos y roles necesarios para la API de App Optimize, consulta Control de acceso con IAM.
Crea un informe
En este ejemplo, se crea un informe del gasto total en tu PROJECT_ID elegido. El informe desglosa los costos por cadaGoogle Cloud producto utilizado, como Compute Engine y Cloud Storage, y por el SKU y la ubicación específicos. El informe abarca los datos de los últimos tres días.
Para crear el recurso del informe, envía una solicitud POST de HTTP a la ruta del recurso projects.locations.reports de la API de REST.
Sigue estos pasos para crear el informe.
Usa el siguiente comando
curlpara enviar la solicitud:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")" }' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?report_id=REPORT_ID"Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .REPORT_ID: Es un ID único para tu informe nuevo, por ejemplo,my-first-report.
La API devuelve un objeto de operación de larga duración (LRO), que representa el proceso de generación de informes. Esta es una respuesta de ejemplo:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }El estado
"done": falseindica que el informe aún se está generando. Toma nota del valor deOPERATION_ID, ya que lo usarás en el siguiente paso.Dado que la generación de informes puede llevar tiempo, debes sondear el LRO hasta que indique que el proceso de generación se completó y que los datos del informe están listos para descargarse.
Para verificar el estado del proceso de generación, envía una solicitud HTTP
GETal nombre del recurso de la operación:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Analiza la respuesta. Si
"done"esfalse, espera entre 5 y 15 segundos y repite este paso. Si"done"estrue, el informe está listo.A continuación, se muestra un ejemplo de una respuesta cuando se completa la operación:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.Report", "name": "projects/PROJECT_ID/locations/global/reports/REPORT_ID", "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")", "expireTime": "2026-02-04T22:05:05Z" } }
Cómo leer los datos del informe
Para recuperar los datos del informe, usa el método personalizado :read una vez que se complete la LRO:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
La respuesta contiene las filas de datos del informe y las definiciones de las columnas. A continuación, se muestra un ejemplo de una respuesta correcta:
{
"rows": [
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "25",
"nanos": 750000000
}
],
[
"us-central1",
"Cloud Storage",
"projects/PROJECT_ID",
"9ADA-9ADC-2FBE",
{
"currency_code": "USD",
"units": "5",
"nanos": 100000000
}
],
[
"europe-west1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "18",
"nanos": 500000000
}
],
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"F61D-4D51-AAFC",
{
"currency_code": "USD",
"units": "12",
"nanos": 200000000
}
]
],
"columns": [
{
"name": "location",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "product_display_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "project",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "sku",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "cost",
"type": "RECORD",
"mode": "NULLABLE",
"columns": [
{
"name": "currency_code",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "units",
"type": "INT64",
"mode": "NULLABLE"
},
{
"name": "nanos",
"type": "INT64",
"mode": "NULLABLE"
}
]
}
],
"next_page_token": ""
}
Los informes con muchas filas se paginan. Para controlar varias páginas, consulta Cómo leer los datos de un informe.
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.
Realiza una limpieza
La API de App Optimize borra automáticamente tu informe 24 horas después de que se crea. Para borrar el informe antes, envía una solicitud HTTP DELETE al extremo del recurso del informe:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID"
¿Qué sigue?
- Obtén más información sobre los informes.
- Explora otras formas de administrar los informes:
- Consulta la descripción general de la API de App Optimize.