É 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.
Neste documento, mostramos como configurar o painel de faturamento de insights de uso e custo com os dados do Cloud Billing. Você pode usar o painel para responder perguntas sobre seus gastos com o Google Cloud, como Quanto estou gastando com os recursos do Compute Engine? e Em quais ambientes estou gastando mais?.
Configure o painel seguindo este tutorial ou assistindo ao vídeo a seguir:
Objetivos
Nesta seção, mostramos como concluir as seguintes tarefas:
Configure sua própria cópia do painel de faturamento de insights de uso e custo usando o Cloud Shell.
Use o Terraform ou o Python para seguir as etapas deste tutorial.
Configure os filtros do painel para usar os rótulos que você usa em seu ambiente do Google Cloud.
Saiba como modificar a fonte de dados 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 dólares americanos (USD).
Custos
Neste documento, você usará os seguintes componentes faturáveis do 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 gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
Confira se você consegue acessar o painel de faturamento de insights de uso e custo de exemplo. Se não for possível acessar o exemplo, talvez sua organização tenha um domínio com restrições ativadas. O administrador pode desativar temporariamente a restrição de domínio da sua conta.
Verifique se a organização ativou a exportação do Cloud Billing para o BigQuery para os dados de custo de uso padrão.
Se a exportação de dados do Cloud Billing não estiver ativada, saiba como ativar a exportação de dados do Cloud Billing para o BigQuery.
Você precisa ter permissões para criar visualizações do BigQuery no projeto que hospeda os conjuntos de dados para a exportação de dados do Cloud Billing.
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.
Se você compartilhar o painel com outras pessoas na organização, nós recomendamos as etapas adicionais a seguir. Elas ajudam você a configurar uma conta de serviço do Google Cloud, que pode ser autenticada nos dados do BigQuery, em vez de exigir que outras pessoas usem suas credenciais ou as deles para acessar os dados.
Encontre o endereço de e-mail do agente de serviço do Looker Studio na página de ajuda do agente de serviço do Looker Studio.
Se você estiver usando o script Python para criar o painel, crie uma conta de serviço para o agente de serviço do Looker Studio.
Se você estiver usando o Terraform, não precisará criar a conta de serviço manualmente. A configuração do Terraform cria a conta de serviço quando você aplica a configuração.
Se você estiver usando o script Python, verifique se o ambiente do Cloud Shell tem uma versão recente do Python 3. Para verificar a versão do Python, no terminal do Cloud Shell, digite
python --version
e pressione Enter.
Criar uma cópia do painel
Terraform
Para criar sua cópia do painel usando o Terraform, 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. O Cloud Shell vem com o Terraform pré-instalado.
De modo geral, a configuração do Terraform no repositório executa estas tarefas:
- Cria uma nova visualização do BigQuery que busca dados da sua exportação de dados de custo padrão.
- Copia o modelo do painel e conecta a cópia à visualização 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.
- Fornece um ID de conta de serviço do Google Cloud, que você usa como método de autenticação no painel.
Siga estas etapas para criar seu painel:
Abra o repositório do GitHub no Cloud Shell:
Criar um arquivo de definições de variáveis do Terraform com as informações sobre o projeto e o conjunto de dados do BigQuery. Use o comando abaixo para criar o arquivo chamado
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
Em que as variáveis são estas:
- PROJECT_ID: o ID do projeto que hospeda seu conjunto de dados do Cloud Billing.
- DATASET_NAME: o conjunto de dados do BigQuery que contém a exportação padrão dos dados de custo.
- TABLE_ID: o nome da tabela do BigQuery que contém a exportação de dados de faturamento padrão.
- LOOKER_STUDIO_AGENT_NAME: o endereço de e-mail do agente de serviço do Looker Studio, que você encontra na página de ajuda do agente de serviço do Looker Studio.
Para inicializar o repositório do GitHub como o diretório de trabalho do Terraform, execute o seguinte comando:
terraform init
Como alternativa, para conferir as alterações feitas pela configuração do Terraform, execute o comando
terraform plan
a seguir:terraform plan -var-file=variables.tfvars
Talvez seja necessário autorizar o Cloud Shell a fazer chamadas de API em seu nome.
Analise as alterações do Terraform e edite
variables.tfvars
, se precisar alterar os valores das variáveis. Quando estiver tudo pronto para criar os recursos, execute o comandoterraform apply
a seguir:terraform apply -var-file=variables.tfvars
Depois que o comando for executado, você vai receber a conta de serviço criada para a autenticação e o link para seu painel do Looker Studio.
Copie o nome da conta de serviço. Você precisa dessas informações ao configurar autenticação da fonte de dados do Looker Studio.
Clique no link do Looker Studio para abrir o painel.
No Looker Studio, clique em Editar e compartilhar para salvar o painel. Quando precisar revisar as configurações de acesso aos dados, clique em Confirmar e salvar.
Se você receber uma solicitação para adicionar dados ao relatório, clique em Adicionar ao relatório.
Agora, é possível acessar o painel pela página inicial do Looker Studio.
Python
Para criar sua cópia do painel usando o Python, 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 uma nova visualização do BigQuery no conjunto de dados com a exportação de dados de custo padrão.
- Copia o modelo do painel e conecta a cópia à visualização 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.
Siga estas etapas para criar seu painel:
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:
rm -rf bill-env python3 -m venv 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' \ -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 de dados de uso e custo padrão.
- BILLBOARD_DATASET: o nome do
conjunto de dados do BigQuery em que a visualização
para o painel é criado, por exemplo,
example_dashboard_view
. 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.
(Opcional) Configurar as credenciais da fonte de dados
Por padrão, o painel de uso do faturamento usa suas credenciais para acessar a fonte de dados do BigQuery. Se você quiser compartilhar o painel com outros, recomendamos o uso de uma conta de serviço do Google Cloud para autenticar no conjunto de dados do BigQuery, de modo que a fonte de dados não dependa das suas credenciais.
Se você usou o Terraform para copiar o painel, vai receber o ID da conta de serviço ao executar o comando terraform apply
. Se você usou o script Python,
crie manualmente a conta de serviço seguindo estas etapas:
Encontre o endereço de e-mail do agente de serviço do Looker Studio na página de ajuda do agente de serviço do Looker Studio.
Crie uma conta de serviço para o agente de serviço do Looker Studio.
Conceda à conta de serviço as seguintes permissões no projeto que tem a visualização do BigQuery para o painel:
bigquery.dataViewer
bigquery.jobUser
iam.serviceAccountTokenCreator
Quando você tiver o ID da conta de serviço, siga estas etapas para usar a conta de serviço para autenticação:
Na página inicial do Looker Studio, abra o painel.
Clique em Editar para editar o painel.
No menu Recurso, selecione Gerenciar fontes de dados adicionadas. O nome da fonte de dados do painel começa com
billing-export-view
.Na coluna Ações da fonte de dados, clique em Editar.
Clique em Credenciais de dados.
Na página Atualizar credenciais de dados, selecione Credenciais da conta de serviço e insira o ID da conta de serviço.
Clique em Atualizar para usar as credenciais da conta de serviço.
Clique em Concluído para salvar as mudanças na fonte de dados.
Para acessar o painel, clique em Visualizar.
Atualizar o painel para usar os rótulos da sua organização
Vários gráficos no painel, como os da página Cost Reporting: Labels
,
são baseadas nos rótulos dos recursos. Para acessar um detalhamento preciso
dos seus custos por rótulos específicos, é necessário modificar os filtros padrão para usar seus
próprios rótulos.
Na página inicial do Looker Studio, abra o painel.
Clique em Editar para editar o painel.
No menu Recurso, selecione Gerenciar filtros.
Analise os filtros com base em
labels.key
eproject.labels.key
e, quando aplicável, clique em Editar para mudar as chaves de rótulo para as que sua organização usa.Por exemplo, se você usar a chave de rótulo
department
para organizar recursos por unidade de negócios, edite o filtrobusiness_unit
e altere o filtroproject.labels.key
paradepartment
.Clique em Fechar para terminar de editar o filtro.
Analisar dados no painel
As páginas do painel do Looker Studio detalham seus dados de custo para que você possa conferir resumos rápidos dos custos e tendências e receber informações detalhadas sobre seus gastos.
Na maioria das páginas, é possível filtrar os dados por projeto e usar o calendário para escolher o período em que você quer analisar os custos.
Ter uma visão de alto nível dos seus custos
Use a página Visão geral para conferir os custos líquidos dos meses de fatura atuais e anteriores, os custos dos seus principais serviços e os custos diários dos últimos 30 dias.
Use a página Tendências para comparar seus custos em períodos diferentes, como o mês atual e o último mês ou o trimestre atual e o último trimestre.
Use a página Análise para analisar seus custos ao longo do tempo e identificar anomalias, como gastos anormalmente altos ou baixos.
Identificar seus fatores de custo
Use as páginas a seguir para saber onde você está gastando mais:
- Custo por serviço por mês
- Custo por projeto por mês
- Custo por projeto, serviço e SKU
- Custo por região
Para uma visão detalhada dos custos de cada serviço, use as páginas específicas do serviço. Por exemplo, a página Clusters do GKE mostra os custos divididos pelos clusters e namespaces do GKE.
Identificar oportunidades de economizar com descontos por compromisso de uso
Os descontos por compromisso de uso (CUDs) reduzem os preços em troca do compromisso de usar um nível mínimo de recursos por um período especificado.
As páginas de CUD no painel mostram o uso do Compute Engine, do Cloud SQL e do Memorystore que pode estar qualificado para CUDs. Se você já tem um ou mais CUDs, as páginas mostram apenas o uso que ainda não foi coberto pelos CUDs atuais.
Conferir os custos do software do Cloud Marketplace e de licenças adicionais
Use a página do Marketplace para ver os custos de software que você comprou no Cloud Marketplace, como Google Cloud NetApp Volumes.
Use a página Licenças para saber quanto você está gastando em licenças adicionais, como licenças do Windows Server no Compute Engine, e licenças de terceiros compradas no Cloud Marketplace.
Conferir custos por rótulos
É possível personalizar os filtros do painel para usar os rótulos da sua organização. Depois de atualizar os filtros, use as páginas a seguir para conferir seus custos em projetos e pastas:
A página Por aplicativo mostra os custos de todos os recursos na chave de rótulo
application
. Por exemplo, se você tiver um app para a Web e dispositivos móveis e rotular os recursos comapplication:web
eapplication:mobile
, respectivamente, é possível ver os custos de cada aplicativo separadamente.A página Rótulos mostra seus custos para rótulos específicos, como o centro de custo e o código da empresa. Se você personalizou os filtros do painel, você pode alterar os títulos nos gráficos para refletir seus filtros.
(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, 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)
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, 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)
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, 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)
Limpar
Terraform
Se você não quiser mais usar o painel, abra o diretório de trabalho do Terraform
novamente e use o comando terraform apply
para excluir os recursos
criados.
Abra o diretório de trabalho do Terraform no Cloud Shell. Se você usou o repositório do GitHub neste tutorial, use o link a seguir para abrir o repositório:
Se quiser visualizar quais recursos serão excluídos, execute o seguinte comando
terraform plan
:terraform plan -destroy
Analise as alterações do Terraform. Quando estiver tudo pronto para excluir os recursos, execute o seguinte comando
terraform apply
:terraform apply -destroy
Python
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.