Seguimos innovando y creciendo, pero algo no cambia: nuestro compromiso de hacerle la vida más fácil a quienes desarrollan. Sabemos lo complejo que resulta gestionar servicios en la nube y, por eso, nos entusiasma presentar una nueva funcionalidad dentro de nuestro arsenal de analítica: la llamada de API reports.query().
Con esta funcionalidad puedes generar reportes de Cloud Analytics de forma programática y obtener y analizar los datos en una sola llamada de API. ¡Es como tener un analista on-demand en el bolsillo!

Por qué te va a encantar reports.query()
Imagina que tienes aplicaciones corriendo tanto en Google Cloud Platform (GCP) como en Amazon Web Services (AWS) y quieres revisar el gasto reciente en servicios puntuales como AWS EC2 o GCP BigQuery durante la última semana. Normalmente, esto te llevaría bastante tiempo navegando entre distintos dashboards o interfaces para reunir los datos.
Con nuestra API reports.query(), el proceso se simplifica muchísimo. Veamos un ejemplo de llamada:
curl --request POST \
--url https://api.doit.com/analytics/v1/reports/query \
--header 'Authorization: Bearer {{your-api-key}}' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"group": [\
{\
"id": "service_description",\
"type": "fixed"\
}\
],
"timeRange": {
"unit": "day",
"amount": 7,
"includeCurrent": false,
"mode": "last"
},
"timeInterval": "day"
}
'
Con esta sencilla solicitud, generas un reporte completo de gastos en varios servicios durante la última semana.
Veamos rápidamente cómo se desglosa el request:
group: indica cómo se agrupan los datos del reporte. En este caso, los agrupamos porservice_description. Puedes obtener la lista completa de dimensiones disponibles de forma programática mediante el método de API dimensions.list()timeRange: define el rango de tiempo del reporte. En el ejemplo, pedimos los datos de los últimos siete días.timeInterval: fija el intervalo para la agregación temporal de los datos. Aquí lo configuramos como agregación diaria.
Así se ve la respuesta que devuelve la API. Por practicidad, solo incluyo una pequeña parte.
{
"Result": {
"schema": [\
{\
"name": "service_description",\
"type": "string"\
},\
{\
"name": "year",\
"type": "string"\
},\
{\
"name": "month",\
"type": "string"\
},\
{\
"name": "day",\
"type": "string"\
},\
{\
"name": "cost",\
"type": "float"\
},\
{\
"name": "timestamp",\
"type": "timestamp"\
}\
],
"rows": [\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"06",\
1.5757174094000006,\
1688601600\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"07",\
1.3773117481,\
1688688000\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"08",\
1.3947479550999997,\
1688774400\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"09",\
1.4486706111999998,\
1688860800\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"10",\
1.3961570165000001,\
1688947200\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"11",\
1.4235074821999998,\
1689033600\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"12",\
1.4268483946000001,\
1689120000\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"06",\
0.07,\
1688601600\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"07",\
0.07,\
1688688000\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"08",\
0.07,\
1688774400\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"09",\
0.08,\
1688860800\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"10",\
0.07,\
1688947200\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"11",\
0.06999999999999999,\
1689033600\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"12",\
0.07,\
1689120000\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"06",\
0.09677419200000002,\
1688601600\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"07",\
0.09677419200000002,\
1688688000\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"08",\
0.09677419200000002,\
1688774400\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"09",\
0.09677419200000002,\
1688860800\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"10",\
0.09677419200000004,\
1688947200\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"11",\
0.09677419200000002,\
1689033600\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"12",\
0.09677419200000002,\
1689120000\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"06",\
1.4365837167000002,\
1688601600\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"07",\
1.4837915334,\
1688688000\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"08",\
1.4360271,\
1688774400\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"09",\
1.4397221999,\
1688860800\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"10",\
1.4407052167000003,\
1688947200\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"11",\
1.4418464164,\
1689033600\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"12",\
1.4447365167000001,\
1689120000\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"06",\
0,\
1688601600\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"07",\
0,\
1688688000\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"08",\
0,\
1688774400\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"09",\
0,\
1688860800\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"10",\
0,\
1688947200\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"11",\
0,\
1689033600\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"12",\
0,\
1689120000\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"06",\
0.09687619200000003,\
1688601600\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"07",\
0.09687619200000003,\
1688688000\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"08",\
0.09687619200000003,\
1688774400\
],\
[\
"2023",\
"07",\
"12",\
0,\
1689120000\
]\
]
}
}
Por supuesto, tu reporte real puede ser mucho más complejo que este ejemplo. Por caso, podrías agrupar costo, uso e incluso métricas personalizadas por varias dimensiones (como "cloud", "service", "labels" o atribuciones propias como "team", "app", etc.) y, al mismo tiempo, filtrar ciertos datos del reporte.
Una herramienta poderosa para tomar mejores decisiones
La nueva API reports.query() te permite generar reportes analíticos de forma programática y rápida, para que accedas a información clave con facilidad. La idea es que tengas los datos correctos al alcance de la mano y puedas tomar decisiones mejores y más fundamentadas.
Ahora puedes monitorear tus costos en la nube, hacer seguimiento del rendimiento de los distintos servicios y entender los patrones de uso, todo sin salir de tu entorno de desarrollo.
Empieza a usar reports.query() hoy mismo
Si esta nueva funcionalidad te entusiasma tanto como a nosotros, consigue tu API key y empieza hoy. Anímate a experimentar y escríbenos cuando quieras si tienes preguntas o comentarios. Siempre estamos para ayudarte y nos encantará conocer las formas creativas en que aprovechas la API reports.query() para optimizar y nutrir tu estrategia en la nube.