Puedes combinar la exportación de datos de la Facturación de Cloud a BigQuery con Looker Studio para mantenerte al tanto de los costos de Google Cloud.
En este documento, se muestra cómo configurar el panel de estadísticas de costos y uso de facturación con tus datos de Facturación de Cloud. Puedes usar el panel para responder preguntas sobre tu gasto de Google Cloud, como ¿Cuánto gasto en recursos de Compute Engine? y ¿Qué entornos me cuestan más?.
Para configurar tu panel, sigue este instructivo o mira el siguiente video:
Objetivos
En este instructivo, se muestra cómo completar las siguientes tareas:
Configura tu propia copia del panel de estadísticas de costos y uso de facturación con Cloud Shell.
Puedes usar Terraform o Python para seguir los pasos de este instructivo.
Configura los filtros del panel para usar las etiquetas que usas en tu entorno de Google Cloud.
Obtén información para modificar la fuente de datos del panel en casos avanzados, como si tienes varias cuentas de Facturación de Cloud o una cuenta de Facturación de Cloud en una moneda distinta del dólar estadounidense (USD).
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
The cost of storing your Cloud Billing data in BigQuery is typically free or minimal. Depending on the size of the BigQuery dataset, you might incur costs for querying the data for analysis.
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
Asegúrate de poder acceder al panel de estadísticas de costos y uso de facturación de ejemplo. Si no puedes acceder al feed de ejemplo, es posible que tu organización tenga habilitadas las restricciones de dominio. El administrador puede desactivar temporalmente la restricción de dominio de tu cuenta.
Verifica que tu organización haya habilitado la exportación de la Facturación de Cloud a BigQuery para los datos de costo de uso estándar.
Si la exportación de datos de la Facturación de Cloud no está habilitada, obtén información para habilitar la exportación de datos de la Facturación de Cloud a BigQuery.
Debes tener permisos para crear vistas de BigQuery en el proyecto que aloja los conjuntos de datos para la exportación de datos de la Facturación de Cloud.
De manera opcional, si deseas crear un conjunto de datos nuevo para las vistas de BigQuery, debes tener permisos a fin de crear conjuntos de datos de BigQuery.
Obtén la siguiente información sobre tu entorno de Google Cloud:
- ID del proyecto en el que se aloja tu conjunto de datos de BigQuery de la Facturación de Cloud.
- Los nombres de conjuntos de datos para tus exportaciones de datos de costos estándar y detallados. Por lo general, las exportaciones de datos de costos se encuentran en el mismo conjunto de datos.
Si compartes el panel con otras personas de tu organización, te recomendamos que realices los siguientes pasos adicionales. Te ayudan a configurar una cuenta de servicio de Google Cloud, que puede autenticarse en los datos de BigQuery en lugar de requerir que otras personas usen tus credenciales o las suyas para acceder a los datos.
Obtén la dirección de correo electrónico del agente de servicio de Looker Studio en la página de ayuda del agente de servicio de Looker Studio.
Si usas la secuencia de comandos de Python para crear el panel, crea una cuenta de servicio para el agente de servicio de Looker Studio.
Si usas Terraform, no necesitas crear la cuenta de servicio manualmente. La configuración de Terraform crea la cuenta de servicio cuando aplicas la configuración.
Si usas la secuencia de comandos de Python, asegúrate de que tu entorno de Cloud Shell tenga una versión reciente de Python 3. Para verificar la versión de Python, en la terminal de Cloud Shell, escribe
python --version
y presiona Intro.
Crea tu copia del panel
Terraform
Si deseas crear tu propia copia del panel con Terraform, primero debes clonar el repositorio de GitHub que automatiza el proceso. En este paso, se usa Cloud Shell, que es un entorno de shell interactivo para Google Cloud que puedes usar desde el navegador. Cloud Shell viene con Terraform preinstalado.
En términos generales, la configuración de Terraform en el repositorio realiza estas tareas:
- Crea una vista nueva de BigQuery que recupera datos de tu exportación de datos de costos estándar.
- Copia la plantilla del panel y conecta la copia a las vistas de BigQuery de tus datos.
- Te da un vínculo de Looker Studio a tu copia, que puedes guardar en tus paneles de Looker Studio.
- Te proporciona un ID de cuenta de servicio de Google Cloud, que usas como método de autenticación para el panel.
Sigue estos pasos para crear tu panel:
Abre el repositorio de GitHub en Cloud Shell:
Crea un archivo de definiciones de variables de Terraform con la información sobre tu proyecto y el conjunto de datos de BigQuery. Usa el siguiente comando para crear el archivo, llamado
variables.tfvars
:cat << EOF > variables.tfvars project-id = "PROJECT_ID" bq-dashboard-dataset-name = "DATASET_NAME" bq-billing-export-table-id = "PROJECT_ID.DATASET_NAME.TABLE_ID" looker-studio-service-agent-name = "LOOKER_STUDIO_AGENT_NAME" EOF
En el ejemplo anterior, las variables son las siguientes:
- PROJECT_ID: El ID del proyecto que aloja el conjunto de datos de la Facturación de Cloud.
- DATASET_NAME: El conjunto de datos de BigQuery que contiene tu exportación de datos de costos estándar.
- TABLE_ID: El nombre de la tabla de BigQuery que contiene la exportación de datos de facturación estándar.
- LOOKER_STUDIO_AGENT_NAME: La dirección de correo electrónico del agente de servicio de Looker Studio, que obtienes de la página de ayuda del agente de servicio de Looker Studio.
Para inicializar el repositorio de GitHub como el directorio de trabajo de Terraform, ejecuta el siguiente comando:
terraform init
De manera opcional, para obtener una vista previa de los cambios que realiza la configuración de Terraform, ejecuta el siguiente comando
terraform plan
:terraform plan -var-file=variables.tfvars
Es posible que se te solicite que autorices a Cloud Shell para que realice llamadas a la API en tu nombre.
Revisa los cambios de Terraform y edita
variables.tfvars
si necesitas cambiar los valores de las variables. Cuando tengas todo listo para crear los recursos, ejecuta el siguiente comandoterraform apply
:terraform apply -var-file=variables.tfvars
Después de que se ejecute el comando, obtendrás la cuenta de servicio que se creó para la autenticación y el vínculo a tu panel de Looker Studio.
Copia el nombre de la cuenta de servicio. Necesitas esta información cuando configuras la autenticación para la fuente de datos de Looker Studio.
Haz clic en el vínculo de Looker Studio para abrir el panel.
En Looker Studio, haz clic en Editar y compartir para guardar el panel. Cuando se te solicite que revises la configuración de acceso a los datos, haz clic en Acknowledge and save.
Si se le solicita que agregue datos al informe, haz clic en Agregar al informe.
Ahora puedes acceder al panel desde la página principal de Looker Studio.
Python
Si deseas crear tu propia copia del panel con Python, primero debes clonar el repositorio de GitHub que automatiza el proceso. En este paso, se usa Cloud Shell, que es un entorno de shell interactivo para Google Cloud que puedes usar desde el navegador.
En términos generales, la secuencia de comandos de configuración en el repositorio realiza estas tareas:
- Crea una nueva vista de BigQuery en el conjunto de datos que tiene tu exportación de datos de costos estándar.
- Copia la plantilla del panel y conecta la copia a las vistas de BigQuery de tus datos.
- Te da un vínculo de Looker Studio a tu copia, que puedes guardar en tus paneles de Looker Studio.
Sigue estos pasos para crear tu panel:
Abre el repositorio de GitHub en Cloud Shell:
Navega al directorio
billboard
:cd examples/billboard
Ejecuta los siguientes comandos a fin de configurar el entorno de Python para la secuencia de comandos:
rm -rf bill-env python3 -m venv bill-env source bill-env/bin/activate pip install -r requirements.txt
Ejecuta la secuencia de comandos que crea tu panel. Es posible que debas autorizar a Cloud Shell para que realice llamadas a la API en tu nombre:
python billboard.py \ -pr 'PROJECT_ID' \ -se 'STANDARD_BILLING_EXPORT_DATASET' \ -bb 'BILLBOARD_DATASET'
En el ejemplo anterior, las variables son las siguientes:
- PROJECT_ID: el ID del proyecto que aloja los conjuntos de datos de la Facturación de Cloud.
- STANDARD_BILLING_EXPORT_DATASET: el conjunto de datos de BigQuery que contiene tu exportación de datos de costos de uso estándar.
- BILLBOARD_DATASET: El nombre del conjunto de datos de BigQuery en el que se crea la vista de BigQuery del panel, por ejemplo,
example_dashboard_view
. Si aún no tienes un conjunto de datos para las vistas, la secuencia de comandos crea uno nueva con este nombre.
Cuando la secuencia de comandos termine de ejecutarse, obtendrás un vínculo de Looker Studio al panel.
Haz clic en el vínculo de Looker Studio para abrir el panel.
En Looker Studio, haz clic en Editar y compartir para guardar el panel. Cuando se te solicite que agregues fuentes de datos al informe, haz clic en Agregar al informe.
Ahora puedes acceder al panel desde la página principal de Looker Studio.
Configura las credenciales de la fuente de datos (opcional)
De forma predeterminada, el panel de uso de facturación usa tus credenciales para acceder a la fuente de datos de BigQuery. Si deseas compartir el panel con otras personas, te recomendamos que uses una cuenta de servicio de Google Cloud para autenticarte en el conjunto de datos de BigQuery, de modo que la fuente de datos no dependa de tus credenciales.
Si usaste Terraform para copiar el panel, obtendrás el ID de la cuenta de servicio cuando ejecutes el comando terraform apply
. Si usaste la secuencia de comandos de Python, debes crear la cuenta de servicio de forma manual siguiendo estos pasos:
Obtén la dirección de correo electrónico del agente de servicio de Looker Studio en la página de ayuda del agente de servicio de Looker Studio.
Crea una cuenta de servicio para el agente de servicio de Looker Studio.
Otorga a la cuenta de servicio los siguientes permisos en el proyecto que tiene la vista de BigQuery para el panel:
bigquery.dataViewer
bigquery.jobUser
iam.serviceAccountTokenCreator
Cuando tengas el ID de la cuenta de servicio, sigue estos pasos para usar la cuenta de servicio para la autenticación:
En la página principal de Looker Studio, abre el panel.
Haz clic en Editar para editar el panel.
En el menú Recurso, selecciona Administrar fuentes de datos agregadas. El nombre de la fuente de datos del panel comienza con
billing-export-view
.En la columna Acciones de la fuente de datos, haz clic en Editar.
Haz clic en Credenciales de datos.
En la página Actualizar credenciales de datos, selecciona Credenciales de la cuenta de servicio y, luego, ingresa el ID de la cuenta de servicio.
Haz clic en Actualizar para usar las credenciales de la cuenta de servicio.
Haz clic en Listo para guardar los cambios en la fuente de datos.
Para ver el panel, haz clic en Ver.
Actualiza el panel para usar las etiquetas de tu organización
Varios gráficos del panel, como los de la página Cost Reporting: Labels
, se basan en las etiquetas de tus recursos. Para ver un desglose preciso de tus costos por etiquetas específicas, debes modificar los filtros predeterminados para usar tus propias etiquetas.
En la página principal de Looker Studio, abre el panel.
Haz clic en Editar para editar el panel.
En el menú Recurso, selecciona Administrar filtros.
Revisa los filtros que se basan en
labels.key
yproject.labels.key
y, cuando corresponda, haz clic en Editar para cambiar las claves de etiqueta por las que usa tu organización.Por ejemplo, si usas la clave de etiqueta
department
para organizar los recursos por unidad de negocio, edita el filtrobusiness_unit
y cambia el filtroproject.labels.key
adepartment
.Haz clic en Cerrar para terminar de editar el filtro.
Analiza tus datos en el panel
Las páginas del panel de Looker Studio desglosan tus datos de costos para que puedas ver resúmenes rápidos de tus costos y tendencias, y obtener información detallada sobre tus gastos.
En la mayoría de las páginas, puedes filtrar los datos por proyecto y usar el calendario para elegir el período para el que deseas analizar los costos.
Obtén una vista de alto nivel de tus costos
Usa la página Descripción general para obtener una visión general de los costos netos de los meses de facturación actuales y anteriores, los costos de tus principales servicios y los costos diarios de los últimos 30 días.
Usa la página Tendencias para comparar tus costos en diferentes períodos, como el mes actual y el mes anterior, o el trimestre actual y el anterior.
Usa la página Análisis para analizar tus costos a lo largo del tiempo y detectar anomalías, como gastos inusualmente altos o bajos.
Identifica los generadores de costos
Utiliza las siguientes páginas para saber en qué gastas más:
- Costo por servicio por mes
- Costo por proyecto por mes
- Costo por proyecto, servicio y SKU
- Costo por región
Para obtener una descripción detallada de los costos de cada servicio, usa las páginas específicas de cada servicio. Por ejemplo, la página Clústeres de GKE muestra los costos desglosados por tus clústeres y espacios de nombres de GKE.
Identifica oportunidades para ahorrar con los descuentos por compromiso de uso
Los descuentos por compromiso de uso (CUD) proporcionan precios con descuento a cambio de un compromiso de usar un nivel mínimo de recursos en un período específico.
En las páginas de CUD del panel, se muestra el uso de Compute Engine, Cloud SQL y Memorystore que podría ser apto para los CUD. Si ya tienes uno o más CUD, estas páginas solo muestran el uso que aún no está cubierto por tus CUD existentes.
Consulta los costos del software de Cloud Marketplace y las licencias adicionales
Usa la página Marketplace para ver los costos del software que compraste en Cloud Marketplace, como Google Cloud NetApp Volumes.
Usa la página Licencias para ver cuánto inviertes en licencias adicionales, como las de Windows Server en Compute Engine, y las licencias de terceros que compraste en Cloud Marketplace.
Cómo ver los costos por etiquetas
Puedes personalizar los filtros del panel para usar las etiquetas de tu organización. Después de actualizar los filtros, puedes usar las siguientes páginas para ver tus costos en todos los proyectos y carpetas:
La página Por aplicación muestra los costos de todos los recursos de la clave de etiqueta
application
. Por ejemplo, si tienes una aplicación web y para dispositivos móviles, y etiquetas sus recursos conapplication:web
yapplication:mobile
, respectivamente, puedes ver los costos de cada aplicación por separado.En la página Etiquetas, se muestran tus costos para etiquetas específicas, como el centro de costos y el código de la empresa. Si personalizaste los filtros del panel, puedes cambiar los títulos de los gráficos para que reflejen tus filtros.
Modifica los datos para varias cuentas de Facturación de Cloud (avanzado)
Si deseas que el panel incluya datos de varias cuentas de Facturación de Cloud, puedes modificar las vistas de BigQuery para incluir las exportaciones de datos de facturación de todas las cuentas de Facturación de Cloud.
Antes de comenzar
Para cada cuenta de Facturación de Cloud que desees incluir, sigue todos los pasos de los requisitos previos del instructivo.
Actualiza las vistas de BigQuery para incluir las exportaciones adicionales de la Facturación de Cloud
En la consola de Google Cloud, abre la página de BigQuery.
Selecciona el proyecto que contiene el conjunto de datos que creaste para el panel.
En el panel Explorador, expande tu proyecto y, luego, expande el conjunto de datos.
Haz clic en la vista de la valla publicitaria para ver sus detalles. En esta vista, se consulta la exportación de datos de uso y costos estándar.
Haz clic en la pestaña Detalles y, luego, en Editar consulta. La consulta de la vista es similar a la siguiente:
SELECT *, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, _PARTITIONDATE AS date from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
En el ejemplo anterior, PROJECT_ID es el proyecto que contiene la exportación de datos de costos estándar de BigQuery para la Facturación de Cloud, y BILLING_ACCOUNT_EXPORT es el nombre de la tabla de BigQuery con los datos de costos estándar.
Duplica la consulta existente y, en la cláusula
FROM
, reemplaza el ID del proyecto y la tabla de BigQuery por la información de la cuenta adicional de Facturación de Cloud.Agrega el operador
UNION ALL
entre las dos consultas para combinar los datos. La consulta final es similar al siguiente ejemplo, que combina las exportaciones de datos para BILLING_ACCOUNT_1 y BILLING_ACCOUNT_2, que están en PROJECT_ID_1 y PROJECT_ID_2, respectivamente.SELECT *, --query for BILLING_ACCOUNT_1 COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, EXTRACT(DATE FROM _PARTITIONTIME) AS date FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s WHERE _PARTITIONTIME >"2021-01-01" UNION ALL SELECT *, --query for BILLING_ACCOUNT_2 COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, _PARTITIONDATE AS date from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
Repite estos pasos para la vista billboard_detail, que consulta los datos de uso y costo detallados.
Si una de tus cuentas está en una moneda diferente del dólar estadounidense, repite estos pasos y usa la columna
currency_conversion_rate
para convertir a USD, de forma similar al siguiente ejemplo:select *, (COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount, (COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost, 'USD' as net_cost_currency, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, _PARTITIONDATE AS date from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s WHERE _PARTITIONDATE > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
Realiza una limpieza
Terraform
Si ya no deseas usar el panel, vuelve a abrir el directorio de trabajo de Terraform y usa el comando terraform apply
para borrar los recursos que creaste.
Abre tu directorio de trabajo de Terraform en Cloud Shell. Si usaste el repositorio de GitHub en este instructivo, usa el siguiente vínculo para abrirlo:
De manera opcional, para obtener una vista previa de los recursos que se borrarán, ejecuta el siguiente comando
terraform plan
:terraform plan -destroy
Revisa los cambios de Terraform. Cuando tengas todo listo para borrar los recursos, ejecuta el siguiente comando
terraform apply
:terraform apply -destroy
Python
Si ya no deseas usar el panel, clona el repositorio de GitHub y ejecuta la secuencia de comandos del panel con la opción -clean
. La secuencia de comandos borra las vistas de BigQuery, pero deja el conjunto de datos de exportación de BigQuery intacto.
Abre el repositorio de GitHub en Cloud Shell:
Navega al directorio
billboard
:cd examples/billboard
Ejecuta los siguientes comandos a fin de configurar el entorno de Python para la secuencia de comandos:
pip install virtualenv virtualenv bill-env source bill-env/bin/activate pip install -r requirements.txt
Ejecuta el comando de limpieza:
python billboard.py \ -pr 'PROJECT_ID' \ -se 'STANDARD_BILLING_EXPORT_DATASET' \ -de 'DETAILED_BILLING_EXPORT_DATASET' \ -bb 'BILLBOARD_DATASET' \ -clean yes
En el ejemplo anterior, las variables son las siguientes:
- PROJECT_ID: el ID del proyecto que aloja los conjuntos de datos de la Facturación de Cloud.
- STANDARD_BILLING_EXPORT_DATASET: el conjunto de datos de BigQuery que contiene tu exportación de datos de costos de uso estándar.
- DETAILED_BILLING_EXPORT_DATASET: el conjunto de datos de BigQuery que contiene la exportación de datos de costos de uso detallados.
- BILLBOARD_DATASET: el conjunto de datos de BigQuery en el que creaste las vistas de BigQuery para el panel.
Para borrar el panel de Looker Studio, abre Looker Studio, ubica el panel y, en el menú , haz clic en Quitar.
¿Qué sigue?
Información sobre las tablas de datos de la Facturación de Cloud en BigQuery.
Revisa las consultas de ejemplo para la exportación de datos de la Facturación de Cloud.
Lee sobre la implementación de FinOps en Google Cloud y las prácticas recomendadas para supervisar los costos.