Visualize os seus custos com o Looker Studio

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

Exemplo de visualização no Looker Studio

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.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

Antes de começar

  1. 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.

    Saiba mais sobre as restrições de domínio.

  2. 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.

  3. 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.

  4. 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.
  5. 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.

    1. 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.

    2. 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.

  6. 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:

  1. Abra o repositório do GitHub no Cloud Shell:

    Abrir no
Cloud Shell

  2. 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
  3. Para inicializar o repositório do GitHub como o diretório de trabalho do Terraform, execute o seguinte comando:

    terraform init
    
  4. 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.

  5. 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 comando terraform 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.

  6. 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.

  7. Clique no link do Looker Studio para abrir o painel de controlo.

  8. 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.

  9. 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:

  1. Abra o repositório do GitHub no Cloud Shell:

    Abrir no
Cloud Shell

  2. Navegue para o diretório billboard:

    cd examples/billboard
    
  3. 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
    
  4. 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.

  5. Clique no link do Looker Studio para abrir o painel de controlo.

  6. 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:

  1. 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.

  2. Crie uma conta de serviço para o agente do serviço Looker Studio.

  3. 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:

  1. Na página inicial do Looker Studio, abra o painel de controlo.

  2. Clique em Editar para editar o painel de controlo.

  3. 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.

  4. Na coluna Ações da origem de dados, clique em Editar.

  5. Clique em Credenciais de dados.

  6. Na página Atualizar credenciais de dados, selecione Credenciais da conta de serviço e introduza o ID da conta de serviço.

  7. Clique em Atualizar para usar as credenciais da conta de serviço.

  8. Clique em Concluído para guardar as alterações à origem de dados.

  9. 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.

  1. Na página inicial do Looker Studio, abra o painel de controlo.

  2. Clique em Editar para editar o painel de controlo.

  3. No menu Recurso, selecione Gerir filtros.

  4. Reveja os filtros baseados em labels.key e project.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 filtro business_unit e altere o filtro project.labels.key para department.

  5. 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 com application:web e application: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

  1. Na Google Cloud consola, abra a página do BigQuery.

    Aceda ao BigQuery

  2. Selecione o projeto que contém o conjunto de dados que criou para o painel de controlo.

  3. No painel Explorador, expanda o projeto e, em seguida, expanda o conjunto de dados.

  4. 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.

  5. 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.

  6. 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.

  7. 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)
    
  8. Repita estes passos para a vista billboard_detail, que consulta os dados detalhados de custos e utilização.

  9. 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.

  1. 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:

    Abrir no
Cloud Shell

  2. Opcionalmente, para pré-visualizar os recursos que são eliminados, execute o seguinte comando terraform plan:

    terraform plan -destroy
    
  3. 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.

  1. Abra o repositório do GitHub no Cloud Shell:

    Abrir no
Cloud Shell

  2. Navegue para o diretório billboard:

    cd examples/billboard
    
  3. 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
    
  4. 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.
  5. 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?