Google Cloud
Overview
O Google Cloud não tem API REST de custo real. O único caminho é o billing export do Cloud Billing para o BigQuery. O CloudBroker lê a tabela do export FOCUS no seu BigQuery, em modo somente leitura, sem guardar nenhuma credencial.
Hoje a conexão valida a leitura, mostra o estado do conector e o total do mês na moeda da sua fatura no painel do Google Cloud. O FinOps Advisor responde perguntas sobre o custo do GCP. O custo do GCP ainda não entra na Visão Geral, na DRE de Custos por Negócio nem no MCP — os totais dessas telas são de AWS/Azure.
Também não estão disponíveis para GCP: recomendações do rulebook de otimização, descoberta automática de aplicações e atribuição de custo por label.
Requisitos
- Uma billing account do Google Cloud e acesso ao console de Faturamento
- Um projeto com BigQuery para receber o export
- O e-mail da service account dedicada ao seu tenant, fornecido pelo CloudBroker
- Papel de administrador no CloudBroker
O Google só permite habilitar o billing export pelo console — não existe API para o CloudBroker fazer isso por você. A tela de conexão é um guia, não um assistente automático.
Guia de setup
- Console GCP → Faturamento → Exportação de dados: habilite o export FOCUS.
- Escolha um dataset multi-região (US ou EU). Em dataset regional o histórico retroativo é perdido de forma irreversível — o CloudBroker recusa a conexão nesse caso. O Google cria o dataset sozinho (nome tipo
gcp_billing_immutable_…) — não crie um à mão. - Aguarde a primeira carga: o Google leva até 5 dias. O retroativo cobre desde o início do mês anterior.
- No dataset: Sharing → Permissions → adicione o e-mail da service account como READER. A permissão é no nível do dataset — o export não aceita permissão por tabela.
- Em
app.cloudbroker.app.br→ Marketplace de Conectores → Google Cloud, preencha os campos e clique em Conectar Google Cloud.
Campos
| Campo | Obrigatório | Descrição |
|---|---|---|
projectId | Sim | ID do projeto onde está o dataset do export |
datasetId | Sim | Dataset do export (gcp_billing_immutable_…) |
tableId | Sim | Tabela do export FOCUS |
saEmail | Sim | E-mail da service account fornecido pelo CloudBroker (…@….iam.gserviceaccount.com) |
Validação
Antes de salvar, o CloudBroker lê o dataset de verdade e confere se ele é multi-região (US ou EU). Se o BigQuery responder "Not found", a conexão falha: isso significa dataset inexistente ou acesso não concedido — o BigQuery não distingue os dois.
Estados do conector
Depois de conectado, a tela mostra um destes estados (botão Reavaliar para consultar de novo):
| Estado | O que significa | O que fazer |
|---|---|---|
| Saudável | Leitura funcionando e dado fresco | Nada |
| Saudável · coberto por créditos | O valor faturado está ≈ zero, mas o preço de tabela não — créditos (promocionais, free tier) estão cobrindo o consumo | Nada — não é consumo zero |
| Aguardando primeiro dado | Acesso confirmado; o Google ainda não criou a tabela do export | Aguardar até 5 dias após habilitar |
| Provável configuração errada | A tabela não apareceu em mais de 5 dias | Conferir no console se o export FOCUS aponta para este dataset |
| Carga inicial em andamento | A tabela existe, mas ainda está vazia | Aguardar |
| Dado parado na fonte | O dado mais novo do Google tem mais de 48h — o conector lê normalmente, o que parou foi o export | Conferir o export no console |
| Acesso não confirmado | O BigQuery respondeu "Not found" para o dataset: nome errado ou permissão removida | Conferir o nome e se a service account segue como READER. Uma revogação recente pode levar ~1 minuto para propagar |
| Dataset em região errada | Dataset regional em vez de multi-região | Recriar o export num dataset US ou EU |
| Erro de federação (lado CloudBroker) | A troca de identidade entre CloudBroker e Google falhou | Nada do seu lado — o problema é nosso |
Nenhum estado exibe "custo zero" para dado ausente.
Dado coletado
Do export FOCUS, por serviço e por mês:
- BilledCost — o valor faturado (é o total exibido)
- EffectiveCost — custo efetivo, com descontos amortizados
- ListCost — preço de tabela, sem créditos
O backend também calcula série diária, previsão do mês (gasto atual + média diária × dias restantes) e anomalias (dia acima de 1,5× a média móvel de 7 dias) — ainda não exibidos nos dashboards.
O export vem na moeda da sua billing account (ex.: BRL). O painel mostra o total nessa moeda como número principal — é o que bate com a fatura — e o valor em USD como secundário. A conversão para USD é feita linha a linha com a taxa que o próprio Google grava no export (x_CurrencyConversionRate) — nunca com um câmbio do CloudBroker. Linha sem taxa não é convertida nem vira zero: fica fora da soma e é contada à parte.
O conector lê apenas o export FOCUS. Os exports Standard e Detailed ainda não são suportados.
Custo de consulta no BigQuery
As consultas rodam no projeto do CloudBroker, não no seu — o seu grant é só leitura do dataset. Cada consulta tem teto de 100 MB processados e filtra pela coluna de partição do export.
Segurança
Nenhuma credencial do Google fica guardada. O que o CloudBroker grava é só um ponteiro sem segredo (projeto, dataset, tabela e e-mail da service account). A cada leitura, o acesso é obtido por Workload Identity Federation: um token de curta duração, emitido para a service account do seu tenant. O isolamento entre clientes é garantido pelo IAM do próprio Google — a identidade de um tenant não consegue obter token da service account de outro.
O acesso real é o seu grant de READER no dataset: você pode revogá-lo no console a qualquer momento. Desconectar no CloudBroker remove o ponteiro.