Pode combinar a exportação de dados de faturação do Google Cloud para o BigQuery com o Looker Studio para se manter a par dos seus Google Cloud custos.
Este documento mostra como configurar o painel de controlo de estatísticas de custos e utilização da faturação com os seus dados de faturação do Google Cloud. Pode usar o painel de controlo para responder a perguntas sobre os seus gastos, como: Quanto estou a gastar em recursos do Compute Engine? e Que ambientes estão a custar-me mais?. Google Cloud
Pode configurar o painel de controlo seguindo este tutorial ou vendo o vídeo seguinte:
Objetivos
Este tutorial mostra como concluir as seguintes tarefas:
Configure a sua própria cópia do painel de controlo de estatísticas de custos e utilização da faturação com o Cloud Shell.
Pode usar o Terraform ou o Python para seguir os passos neste tutorial.
Configure os filtros do painel de controlo para usar as etiquetas que usa no seu Google Cloud ambiente.
Saiba como modificar a origem de dados do painel de controlo para casos avançados, como se tiver várias contas do Cloud Billing ou uma conta do Cloud Billing numa moeda diferente do dólar dos EUA (USD).
Custos
Neste documento, usa 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 custos com base na sua utilização projetada,
use a calculadora de preços.
Antes de começar
Certifique-se de que consegue aceder ao painel de controlo de estatísticas de custos e utilização da faturação de exemplo. Se não conseguir aceder ao exemplo, a sua organização pode ter restrições de domínio ativadas. O administrador pode desativar temporariamente a restrição de domínio para a sua conta.
Verifique se a sua organização ativou a exportação da faturação do Google Cloud para o BigQuery para os dados de custos de utilização padrão.
Se a exportação de dados da Faturação do Google Cloud não estiver ativada, saiba como ativar a exportação de dados da Faturação do Google Cloud para o BigQuery.
Tem de ter autorizações para criar vistas do BigQuery no projeto que aloja os conjuntos de dados para a exportação de dados da faturação na nuvem.
Opcionalmente, se quiser criar um novo conjunto de dados para as visualizações do BigQuery, tem de ter autorizações para criar conjuntos de dados do BigQuery.
Obtenha as seguintes informações sobre o seu Google Cloud ambiente:
- O ID do projeto onde o conjunto de dados do BigQuery da faturação na nuvem está alojado.
- Os nomes dos conjuntos de dados para as exportações de dados de custos padrão e detalhados. Normalmente, as exportações de dados de custos estão no mesmo conjunto de dados.
Se estiver a partilhar o painel de controlo com outras pessoas na sua organização, recomendamos os seguintes passos adicionais. Estas ajudam a configurar umaGoogle Cloud conta de serviço, que pode autenticar os dados do BigQuery em vez de exigir que outras pessoas usem as suas credenciais ou as delas para aceder aos dados.
Obtenha o endereço de email do agente de serviço do Looker Studio na página de ajuda do agente de serviço do Looker Studio.
Se estiver a usar o script Python para criar o painel de controlo, crie uma conta de serviço para o agente do serviço Looker Studio.
Se estiver a usar o Terraform, não precisa de criar a conta de serviço manualmente. A configuração do Terraform cria a conta de serviço quando aplica a configuração.
Se estiver a usar o script Python, certifique-se de que o seu ambiente do Cloud Shell tem uma versão recente do Python 3. Para verificar a versão do Python, no terminal do Cloud Shell, escreva
python --version
e prima Enter.
Crie a sua cópia do painel de controlo
Terraform
Para criar a sua própria cópia do painel de controlo através do Terraform, comece por clonar o repositório do GitHub que automatiza o processo. Este passo usa a Cloud Shell, que é um ambiente de shell interativo para Google Cloud que pode usar a partir do seu navegador. O Cloud Shell inclui o Terraform pré-instalado.
A um nível elevado, a configuração do Terraform no repositório realiza estas tarefas:
- Cria uma nova vista do BigQuery que obtém dados da sua exportação de dados de custos padrão.
- Copia o modelo de painel de controlo e associa a cópia à visualização de propriedade do BigQuery dos seus dados.
- Dá-lhe um link do Looker Studio para a sua cópia, que pode guardar nos seus painéis de controlo do Looker Studio.
- Dá-lhe um Google Cloud ID da conta de serviço, que usa como o método de autenticação para o painel de controlo.
Siga estes passos para criar o seu painel de controlo:
Abra o repositório do GitHub no Cloud Shell:
Crie um ficheiro de definições de variáveis do Terraform com as informações sobre o seu projeto e conjunto de dados do BigQuery. Use o seguinte comando para criar o ficheiro denominado
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 as seguintes:
- PROJECT_ID: o ID do projeto que aloja o seu conjunto de dados do Cloud Billing.
- DATASET_NAME: o conjunto de dados do BigQuery que contém a exportação de dados de custos padrão.
- TABLE_ID: o nome da tabela do BigQuery que contém a exportação de dados de faturação padrão.
- LOOKER_STUDIO_AGENT_NAME: O endereço de email do agente do serviço do Looker Studio, que recebe na página de ajuda do agente do 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
Opcionalmente, para pré-visualizar as alterações que a configuração do Terraform faz, execute o seguinte comando
terraform plan
:terraform plan -var-file=variables.tfvars
Pode ser-lhe pedido que autorize o Cloud Shell a fazer chamadas API em seu nome.
Reveja as alterações do Terraform e edite
variables.tfvars
se precisar de alterar os valores de alguma variável. Quando tiver tudo pronto para criar os recursos, execute o seguinte comandoterraform apply
:terraform apply -var-file=variables.tfvars
Depois de executar o comando, recebe a conta de serviço criada para autenticação e o link para o painel de controlo do Looker Studio.
Copie o nome da conta de serviço. Precisa destas informações quando configurar a autenticação para a origem de dados do Looker Studio.
Clique no link do Looker Studio para abrir o painel de controlo.
No Looker Studio, clique em Editar e partilhar para guardar o painel de controlo. Quando lhe for pedido que reveja as definições de acesso aos dados, clique em Confirmar e guardar.
Se lhe for pedido que adicione dados ao relatório, clique em Adicionar ao relatório.
Agora, pode aceder ao seu painel de controlo a partir da página inicial do Looker Studio.
Python
Para criar a sua própria cópia do painel de controlo através do Python, comece por clonar o repositório do GitHub que automatiza o processo. Este passo usa a Cloud Shell, que é um ambiente de shell interativo para Google Cloud que pode usar a partir do seu navegador.
A um nível elevado, o script de configuração no repositório realiza estas tarefas:
- Cria uma nova vista do BigQuery no conjunto de dados que tem a sua exportação de dados de custos padrão.
- Copia o modelo de painel de controlo e associa a cópia à visualização de propriedade do BigQuery dos seus dados.
- Dá-lhe um link do Looker Studio para a sua cópia, que pode guardar nos seus painéis de controlo do Looker Studio.
Siga estes passos para criar o seu painel de controlo:
Abra o repositório do GitHub no Cloud Shell:
Navegue para 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 seu painel de controlo. Pode ter de 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 as seguintes:
- PROJECT_ID: o ID do projeto que aloja os seus conjuntos de dados do Cloud Billing.
- STANDARD_BILLING_EXPORT_DATASET: O conjunto de dados do BigQuery que contém a exportação de dados do custo de utilização padrão.
- : O nome do conjunto de dados do BigQuery onde a vista do BigQuery para o painel de controlo é criada, por exemplo,
example_dashboard_view
.BILLBOARD_DATASET Se ainda não tiver um conjunto de dados para as visualizações, o script cria um novo com este nome.
Quando o script termina a execução, recebe um link do Looker Studio para o seu painel de controlo.
Clique no link do Looker Studio para abrir o painel de controlo.
No Looker Studio, clique em Editar e partilhar para guardar o painel de controlo. Quando lhe for pedido que adicione origens de dados ao relatório, clique em Adicionar ao relatório.
Agora, pode aceder ao seu painel de controlo a partir da página inicial do Looker Studio.
(Opcional) Configure as credenciais da origem de dados
Por predefinição, o painel de controlo de utilização da faturação usa as suas credenciais para aceder à origem de dados do BigQuery. Se quiser partilhar o painel de controlo com outras pessoas, recomendamos que use uma conta de serviço para fazer a autenticação no conjunto de dados do BigQuery, para que a origem de dados não dependa das suas credenciais. Google Cloud
Se usou o Terraform para copiar o painel de controlo, recebe o ID da conta de serviço quando
executa o comando terraform apply
. Se usou o script Python, tem de criar manualmente a conta de serviço através destes passos:
Obtenha o endereço de email 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 do serviço Looker Studio.
Conceda à conta de serviço as seguintes autorizações no projeto que tem a vista do BigQuery para o painel de controlo:
bigquery.dataViewer
bigquery.jobUser
iam.serviceAccountTokenCreator
Quando tiver o ID da conta de serviço, siga estes passos para usar a conta de serviço para autenticação:
Na página inicial do Looker Studio, abra o painel de controlo.
Clique em Editar para editar o painel de controlo.
No menu Recurso, selecione Gerir origens de dados adicionadas. O nome da origem de dados do painel de controlo começa com
billing-export-view
.Na coluna Ações da origem 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 introduza o ID da conta de serviço.
Clique em Atualizar para usar as credenciais da conta de serviço.
Clique em Concluído para guardar as alterações à origem de dados.
Para ver o painel de controlo, clique em Ver.
Atualize o painel de controlo para usar as etiquetas da sua organização
Vários gráficos no painel de controlo, como os da página Cost Reporting: Labels
, baseiam-se nas etiquetas dos seus recursos. Para ver uma discriminação precisa dos custos por etiquetas específicas, tem de modificar os filtros predefinidos para usar as suas próprias etiquetas.
Na página inicial do Looker Studio, abra o painel de controlo.
Clique em Editar para editar o painel de controlo.
No menu Recurso, selecione Gerir filtros.
Reveja os filtros baseados em
labels.key
eproject.labels.key
e, quando aplicável, clique em Editar para alterar as chaves de etiquetas para as que a sua organização usa.Por exemplo, se usar a chave de etiqueta
department
para organizar os recursos por unidade de negócio, edite o filtrobusiness_unit
e altere o filtroproject.labels.key
paradepartment
.Clique em Fechar para terminar a edição do filtro.
Analise os seus dados no painel de controlo
As páginas no painel de controlo do Looker Studio discriminam os dados de custos para que possa ver resumos rápidos dos seus custos e tendências, e obter informações detalhadas sobre os seus gastos.
Na maioria das páginas, pode filtrar os dados por projeto e usar o calendário para escolher o período para o qual quer analisar os custos.
Tenha uma vista geral dos seus custos
Use a página Vista geral para ver uma análise geral dos custos líquidos do mês de faturação atual e anterior, os custos dos seus principais serviços e os custos diários dos últimos 30 dias.
Use a página Tendências para comparar os seus custos em diferentes períodos, como o mês atual e o mês anterior, ou o trimestre atual e o trimestre anterior.
Use a página Análise para analisar os seus custos ao longo do tempo e identificar anomalias, como gastos invulgarmente elevados ou baixos.
Identifique os fatores de custo
Use as páginas seguintes para saber onde está a gastar 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 ver uma análise 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 discriminados pelos seus clusters e espaços de nomes do GKE.
Identifique oportunidades de poupança com descontos de fidelidade
Os descontos por utilização garantida (CUDs) oferecem preços com desconto em troca do seu compromisso de usar um nível mínimo de recursos durante um período especificado.
As páginas de CUD no painel de controlo mostram a sua utilização do Compute Engine, Cloud SQL e Memorystore que pode ser elegível para CUDs. Se já tiver um ou mais CUDs, estas páginas apenas mostram a utilização que ainda não está coberta pelos seus CUDs existentes.
Veja os custos do software do Cloud Marketplace e das licenças adicionais
Use a página Marketplace para ver os custos do software que comprou no Cloud Marketplace, como o Google Cloud NetApp Volumes.
Use a página Licenças para ver quanto está a gastar em licenças adicionais, como licenças para o Windows Server no Compute Engine e licenças de terceiros que comprou no Cloud Marketplace.
Veja os custos por etiquetas
Pode personalizar os filtros do painel de controlo para usar as etiquetas da sua organização. Depois de atualizar os filtros, pode usar as seguintes páginas para ver os custos em projetos e pastas:
A página Por aplicação mostra os custos de todos os recursos na chave do marcador
application
. Por exemplo, se tiver uma app para dispositivos móveis e uma app Web, e etiquetar os respetivos recursos comapplication:web
eapplication:mobile
, respetivamente, pode ver os custos de cada aplicação separadamente.A página Etiquetas mostra os custos de etiquetas específicas, como o centro de custos e o código empresarial. Se personalizou os filtros do painel de controlo, pode alterar os títulos nos gráficos para refletir os seus filtros.
(Avançado) Modifique os dados de várias contas do Cloud Billing
Se quiser que o painel de controlo inclua dados de várias contas de faturação do Google Cloud, pode modificar as vistas do BigQuery para incluir as exportações de dados de faturação de todas as contas de faturação do Google Cloud.
Antes de começar
Para cada conta do Cloud Billing que quer incluir, siga todos os passos nos pré-requisitos do tutorial.
Atualize as vistas do BigQuery para incluir exportações adicionais do Cloud Billing
Na Google Cloud consola, abra a página do BigQuery.
Selecione o projeto que contém o conjunto de dados que criou para o painel de controlo.
No painel Explorador, expanda o projeto e, em seguida, expanda o conjunto de dados.
Clique na vista de painel publicitário para ver os respetivos detalhes. Esta vista consulta a sua exportação de dados de custos e utilização padrão.
Clique no separador Detalhes e, de seguida, em Editar consulta. A consulta para a vista é semelhante à seguinte:
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, date(usage_end_time) AS date from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
Em que PROJECT_ID é o projeto que contém a exportação de dados de custos padrão do Google Cloud Platform Billing e BILLING_ACCOUNT_EXPORT é o nome da tabela do BigQuery com os seus dados de custos padrão.
Duplique a consulta existente e, na cláusula
FROM
, substitua o ID do projeto e a tabela do BigQuery por informações da conta de faturação do Google Cloud adicional.Adicione o operador
UNION ALL
entre as duas consultas para combinar os dados. A sua consulta final é semelhante ao seguinte exemplo, 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, respetivamente.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, date(usage_end_time) AS date from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
Repita estes passos para a vista billboard_detail, que consulta os dados detalhados de custos e utilização.
Se uma das suas contas estiver numa moeda diferente do USD, repita estes passos e use a coluna
currency_conversion_rate
para fazer a conversão para USD, de forma semelhante ao seguinte exemplo: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, date(usage_end_time) AS date from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
Limpar
Terraform
Se já não quiser usar o painel de controlo, abra novamente o diretório de trabalho do Terraform e use o comando terraform apply
para eliminar os recursos que criou.
Abra o diretório de trabalho do Terraform no Cloud Shell. Se usou o repositório do GitHub neste tutorial, use o seguinte link para abrir o repositório:
Opcionalmente, para pré-visualizar os recursos que são eliminados, execute o seguinte comando
terraform plan
:terraform plan -destroy
Reveja as alterações do Terraform. Quando tiver tudo pronto para eliminar os recursos, execute o seguinte comando
terraform apply
:terraform apply -destroy
Python
Se já não quiser usar o painel de controlo, clone o repositório do GitHub e
execute o script do painel de controlo com a opção -clean
. O script elimina as vistas do BigQuery, mas deixa o conjunto de dados do BigQuery Export intacto.
Abra o repositório do GitHub no Cloud Shell:
Navegue para 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 as seguintes:
- PROJECT_ID: o ID do projeto que aloja os seus conjuntos de dados do Cloud Billing.
- STANDARD_BILLING_EXPORT_DATASET: O conjunto de dados do BigQuery que contém a exportação de dados do custo de utilização padrão.
- DETAILED_BILLING_EXPORT_DATASET: o conjunto de dados do BigQuery que contém a exportação de dados de custo de utilização detalhado.
- BILLBOARD_DATASET: O conjunto de dados do BigQuery onde criou as vistas do BigQuery para o painel de controlo.
Para eliminar o painel de controlo do Looker Studio, abra o Looker Studio localize o painel de controlo e, no menu , clique em Remover.
O que se segue?
Compreenda as tabelas de dados de faturação do Google Cloud no BigQuery.
Reveja consultas de exemplo para a exportação dos dados de faturação do Google Cloud.
Leia sobre a implementação de FinOps na Google Cloud e as práticas recomendadas para monitorizar os seus custos.