É possível combinar a exportação de dados do Cloud Billing para o BigQuery com o Looker Studio para acompanhar seus custos do Google Cloud.
Nesta página, mostramos como configurar o painel de faturamento de insights de uso e custo com os dados do Cloud Billing. Use o painel para responder a perguntas sobre seu gasto no Google Cloud, como Quanto estou gastando com recursos do Compute Engine?
Configure o painel seguindo este tutorial ou assistindo ao vídeo a seguir:
Objetivos
Neste tutorial, mostramos como concluir estas tarefas:
Configurar sua própria cópia do painel de faturamento de insights de uso e custo usando o Cloud Shell.
Saber como modificar as visualizações do painel para casos avançados, por exemplo, se você tiver várias contas do Cloud Billing ou uma conta do Cloud Billing em uma moeda diferente de USD.
Custos
Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:
Normalmente, o custo de armazenamento dos dados do Cloud Billing no BigQuery é gratuito ou mínimo. Dependendo do tamanho do conjunto de dados do BigQuery, talvez você gere custos de consulta dos dados para análise.
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
Configure a exportação de dados do Cloud Billing para o BigQuery.
Para usar o painel, ative as exportações do BigQuery Padrão e Detalhada para os dados de uso do Cloud Billing.
Depois de ativar a exportação de dados, leva cerca de um dia para que o conjunto de dados seja preenchido com dados do Cloud Billing. É possível que cobranças de saída de rede apareçam primeiro, depois algumas cobranças de VM, depois pelo uso do Pub/Sub e assim por diante. Quando o conjunto de dados estiver completo, será possível executar consultas.
Se sua organização já tiver configurado as exportações do BigQuery, você precisará de permissões para criar visualizações do BigQuery no projeto que hospeda os conjuntos de dados.
Opcionalmente, se você quiser criar um novo conjunto de dados para as visualizações do BigQuery, precisará de permissões para criar conjuntos de dados do BigQuery.
Consiga as seguintes informações sobre seu ambiente do Google Cloud:
- O ID do projeto em que o conjunto de dados do BigQuery do Cloud Billing está hospedado.
- Os nomes dos conjuntos de dados referentes às exportações padrão e detalhadas dos dados de custo. Normalmente, as exportações de dados de custo estão no mesmo conjunto de dados.
Criar uma cópia do painel
Para criar sua cópia do painel, clone primeiro o repositório do GitHub que automatiza o processo. Esta etapa usa o Cloud Shell, um ambiente shell interativo para o Google Cloud que pode ser usado no seu navegador.
Em um nível superior, o script de configuração no repositório executa estas tarefas:
- Cria um novo conjunto de dados do BigQuery, com visualizações que buscam dados das suas exportações padrão e detalhadas dos dados de custo.
- Copia o modelo do painel e conecta a cópia às visualizações do BigQuery dos seus dados.
- Oferece um link do Looker Studio para sua cópia, que você pode salvar nos painéis do Looker Studio.
Para criar sua cópia:
Abra o repositório do GitHub no Cloud Shell:
Acesse o diretório
billboard
:cd examples/billboard
Execute os seguintes comandos para configurar o ambiente Python para o script:
pip install virtualenv virtualenv bill-env source bill-env/bin/activate pip install -r requirements.txt
Execute o script que cria o painel. Talvez seja necessário autorizar o Cloud Shell a fazer chamadas de API em seu nome:
python billboard.py \ -pr PROJECT_ID \ -se STANDARD_BILLING_EXPORT_DATASET \ -de DETAILED_BILLING_EXPORT_DATASET \ -bb BILLBOARD_DATASET
Em que as variáveis são estas:
- PROJECT_ID: o ID do projeto que hospeda os conjuntos de dados do Cloud Billing.
- STANDARD_BILLING_EXPORT_DATASET: o conjunto de dados do BigQuery que contém a exportação padrão dos dados de custo.
- DETAILED_BILLING_EXPORT_DATASET: o conjunto de dados do BigQuery que contém a exportação detalhada dos dados de custo de uso.
- BILLBOARD_DATASET: o nome do conjunto de dados do BigQuery em que as visualizações do BigQuery para o painel são criadas, por exemplo,
example_dashboard_views
. Se você ainda não tiver um conjunto de dados para as visualizações, o script criará um novo com esse nome.
Quando a execução do script terminar, você receberá um link do Looker Studio para seu painel.
Clique no link do Looker Studio para abrir o painel.
No Looker Studio, clique em Editar e compartilhar para salvar o painel. Quando for solicitado que você adicione fontes de dados ao relatório, clique em Adicionar ao relatório.
Agora, é possível acessar o painel pela página inicial do Looker Studio.
(Avançado) Modificar os dados de várias contas do Cloud Billing
Se você quiser que o painel inclua dados de várias contas do Cloud Billing, modifique as visualizações do BigQuery para incluir as exportações de dados de faturamento de todas as contas do Cloud Billing.
Antes de começar
Para cada conta do Cloud Billing que você quiser incluir, siga todas as etapas nos pré-requisitos do tutorial.
Atualizar as visualizações do BigQuery para incluir exportações extras do Cloud Billing
No Console do Cloud, abra a página do BigQuery.
Selecione o projeto que contém o conjunto de dados que você criou para o painel.
No painel Explorer, expanda o projeto e abra o conjunto de dados.
Clique na visualização Quadro de faturas para ver os detalhes. Essa visualização consulta a exportação padrão dos dados de uso e custo.
Clique na guia Detalhes e em Editar consulta. A consulta da visualização é semelhante a esta:
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, EXTRACT(DATE FROM _PARTITIONTIME) AS date from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s WHERE _PARTITIONTIME >"2021-01-01"
Em que PROJECT_ID é o projeto que contém a exportação padrão dos dados de custo do BigQuery para o Cloud Billing e BILLING_ACCOUNT_EXPORT é o nome da tabela do BigQuery com seus dados de custo padrão.
Duplique a consulta atual e, na cláusula
FROM
, substitua o ID do projeto e a tabela do BigQuery pelas informações da conta do Cloud Billing extra.Adicione o operador
UNION ALL
entre as duas consultas para combinar os dados. Sua consulta final é semelhante ao exemplo a seguir, que combina as exportações de dados para BILLING_ACCOUNT_1 e BILLING_ACCOUNT_2, que estão em PROJECT_ID_1 e 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, EXTRACT(DATE FROM _PARTITIONTIME) AS date from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s WHERE _PARTITIONTIME >"2021-01-01"
Repita essas etapas para a visualização billboard_detail, que consulta os dados de uso e custo detalhados.
Se uma das contas estiver em uma moeda diferente de USD, repita essas etapas e use a coluna
currency_conversion_rate
para converter para USD, semelhante ao exemplo a seguir: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, EXTRACT(DATE FROM _PARTITIONTIME) AS date from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s WHERE _PARTITIONTIME >"2021-01-01"
Limpar
Se você não quiser mais usar o painel, clone o repositório do GitHub e execute o script do painel com a opção -clean
. O script exclui as visualizações do BigQuery, mas deixa o conjunto de dados da exportação do BigQuery intacto.
Abra o repositório do GitHub no Cloud Shell:
Acesse o diretório
billboard
:cd examples/billboard
Execute os seguintes comandos para configurar o ambiente Python para o script:
pip install virtualenv virtualenv bill-env source bill-env/bin/activate pip install -r requirements.txt
Execute o comando de limpeza:
python billboard.py \ -pr PROJECT_ID \ -se STANDARD_BILLING_EXPORT_DATASET \ -de DETAILED_BILLING_EXPORT_DATASET -bb BILLBOARD_DATASET \ -clean yes
Em que as variáveis são estas:
- PROJECT_ID: o ID do projeto que hospeda os conjuntos de dados do Cloud Billing.
- STANDARD_BILLING_EXPORT_DATASET: o conjunto de dados do BigQuery que contém a exportação de dados de uso e custo padrão.
- DETAILED_BILLING_EXPORT_DATASET: o conjunto de dados do BigQuery que contém a exportação detalhada dos dados de custo de uso.
- BILLBOARD_DATASET: o conjunto de dados do BigQuery em que você criou as visualizações do BigQuery para o painel.
Para excluir o painel do Looker Studio, abra o Looker Studio, localize o painel e, no menu , clique em Remover.
A seguir
Noções básicas sobre as tabelas de dados do Cloud Billing no BigQuery.
Analise os exemplos de consultas para a exportação de dados do Cloud Billing.
Leia sobre a implementação de FinOps no Google Cloud e as práticas recomendadas para monitorar seus custos.