Visualizar os custos com o Google Data Studio

É possível combinar a exportação de dados do Cloud Billing para o BigQuery com o Google Data Studio para se manter atualizado sobre os 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?

Exemplo de visualização no Google Data Studio

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. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

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

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

  3. 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.
  • Fornece um link do Data Studio para sua cópia, que pode ser salvo nos painéis do Data Studio.

Para criar sua cópia:

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

    Abrir no Cloud Shell

  2. Acesse 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 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 Google Data Studio para o painel.

  5. Clique no link do Google Data Studio para abrir o painel.

  6. No Google Data 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 Data 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

  1. No console, abra a página do BigQuery.

    Ir para o BigQuery

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

  3. No painel Explorer, expanda o projeto e abra o conjunto de dados.

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

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

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

  7. 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"
    
  8. Repita essas etapas para a visualização billboard_detail, que consulta os dados de uso e custo detalhados.

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

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

    Abrir no Cloud Shell

  2. Acesse 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 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.
  5. Para excluir o painel do Google Data Studio, abra o Google Data Studio, localize o painel e, no menu , clique em Remover.

A seguir