Visualize os custos com o Looker Studio


É 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?.

Exemplo de visualização no Looker Studio

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

Antes de começar

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

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

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

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

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

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

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

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

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

    Abrir no Cloud Shell.

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

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

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

  6. Copie o nome da conta de serviço. Você precisa dessas informações ao configurar autenticação da fonte de dados do Looker Studio.

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

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

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

  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:

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

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

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

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

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

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

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

  2. Clique em Editar para editar o painel.

  3. No menu Recurso, selecione Gerenciar fontes de dados adicionadas. O nome da fonte de dados do painel começa com billing-export-view.

  4. Na coluna Ações da fonte 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 insira 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 salvar as mudanças na fonte de dados.

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

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

  2. Clique em Editar para editar o painel.

  3. No menu Recurso, selecione Gerenciar filtros.

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

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

  1. No Console do Cloud, 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,
      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.

  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,
    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)
    
  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,
         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.

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

    Abrir no Cloud Shell.

  2. Se quiser visualizar quais recursos serão excluídos, execute o seguinte comando terraform plan:

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

  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 Looker Studio, abra o Looker Studio, localize o painel e, no menu , clique em Remover.

A seguir