Como ver relatórios de uso

Com o Google Compute Engine, é possível exportar relatórios detalhados de uso desta plataforma para um bucket do Google Cloud Storage utilizando o recurso correspondente. Os relatórios de uso fornecem informações sobre a duração dos seus recursos. Por exemplo, é possível ver quantas instâncias de VM no projeto estão executando um tipo de máquina n2-standard-4 e há quanto tempo cada instância está em execução. Também é possível revisar o espaço de armazenamento de um disco permanente e informações sobre outros recursos do Compute Engine.

Relatórios de uso não fornecem informações de faturamento nem de atividade, como informações sobre solicitações de API. Para ver informações de faturamento, consulte o recurso Exportação de faturamento. Para registros de atividades, consulte Registros de atividades.

Antes de começar

Visão geral

Ao ativar os relatórios de uso, o Compute Engine envia dois tipos de relatórios para o bucket do Google Cloud Storage que você especificar:

  1. Relatórios de uso diário

    Esses relatórios são enviados diariamente e incluem dados de uso do dia anterior. Cada relatório é um arquivo separado que contém os dados do último período. Os dados nesses relatórios são imutáveis, o que significa que o Compute Engine não atualizará nem regravará o arquivo de registro em caso de imprecisões. Em vez disso, os dados serão corrigidos no próximo relatório novo que for enviado ao bucket.

    Relatórios de uso diário têm o seguinte formato de nome:

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMMDD>.csv
    
  2. Relatório cumulativo mensal

    Um único relatório cumulativo mensal é enviado diariamente, contendo dados mensais de uso para o projeto até o dia, sem incluí-lo. O relatório de uso mensal é substituído a cada dia com novos dados que refletem o uso mensal de recursos até aquela data. Haverá apenas um arquivo mensal de dados de uso por projeto e por mês.

    Relatórios cumulativos mensais têm o formato de nome a seguir:

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMM>.csv
    

    Os arquivos de relatórios diário e mensal são muito parecidos, exceto pela diferença no formato da data. Os relatórios cumulativos mensais são datados usando o ano e o mês (YYYYMM) e os relatórios de uso diário são datados usando o ano, o mês e o dia (YYYYMMDD).

Todos os relatórios de uso são enviados no formato de valores separados por vírgulas (CSV, na sigla em inglês, link em inglês), e os arquivos de relatório de uso recebem o prefixo <report_prefix>. <report_prefix> é um valor personalizável escolhido pelo usuário. Se você não especificar um prefixo de relatório, o prefixo usage_gce será usado por padrão. Todos os horários são indicados no horário do Pacífico (PST, na sigla em inglês).

Pré-requisitos

Antes de começar a utilizar a exportação de uso do Compute Engine, faça o seguinte:

  • Inscreva-se no Google Cloud Storage, caso ainda não tenha feito isso.
  • Você precisa ter um bucket para armazenar registros de uso.

Como configurar a exportação de uso

Quando você ativar o recurso de exportação de uso, o primeiro relatório será enviado no dia seguinte detalhando o uso do dia anterior. Depois disso, você receberá relatórios em intervalos de 24 horas.

Para configurar o recurso de exportação de uso, ative-o na ferramenta gcloud compute Ao ativar esse recurso, você precisa definir duas propriedades:

  1. O bucket do Google Cloud Storage para onde quer que os relatórios sejam enviados.

    É possível selecionar qualquer bucket do Cloud Storage de que seja proprietário, incluindo buckets de projetos diferentes. Esse bucket deve existir antes que você possa começar a exportar relatórios. Além disso, você deve ter acesso de proprietário no bucket. O Google Cloud Storage cobra pelo uso, portanto, revise a página de preços do Cloud Storage para ver informações sobre como poderá incorrer em custos pelo serviço.

    Qualquer usuário que tenha acesso de leitura no bucket do Cloud Storage poderá ver os relatórios de uso armazenados nele. Qualquer usuário que tenha acesso de gravação no bucket poderá criar, ver e modificar arquivos existentes nele. Para mais informações, consulte a seção Controle de acesso.

  2. O prefixo de relatório dos arquivos.

    Você pode especificar o prefixo de relatório para os seus relatórios de uso. Os relatórios de uso terão nomes de arquivo contendo esse prefixo. Por exemplo, especificar "my-cool-project-report" como o prefixo de relatório resulta em um nome de arquivo semelhante a my-cool-project-report_1234567890_20131230.csv. Se você não especificar um prefixo de relatório, será usado o prefixo padrão usage_gce.

Depois de decidir sobre essas duas propriedades, você poderá ativar o recurso de exportação de uso das seguintes formas:

Console

  1. Acesse a página Configurações do Compute Engine (em inglês)

    Acesse Configurações do Compute Engine.

  2. Marque a caixa Ativar exportação de uso.

  3. Preencha o campo que solicita um Nome do bucket. Se quiser, forneça um Prefixo do relatório. Se você não informar o prefixo de relatório, será usado o prefixo padrão usage_gce. Todos os relatórios de uso entregues ao bucket serão nomeados com esse prefixo.

  4. Clique em Salvar.

gcloud

Em gcloud compute, use o comando gcloud compute project-info set-usage-bucket para ativar este recurso:

 gcloud compute project-info set-usage-bucket --bucket [BUCKET_NAME] [--prefix [PREFIX]]

Em que:

  • [BUCKET_NAME] é o nome de um bucket atual para receber os relatórios de uso. Precisa estar no formato gs://<bucket-name> ou https://storage.googleapis.com/<bucket-name>. O usuário que executa esse comando precisa ser um proprietário do bucket.
  • [PREFIX] é o prefixo opcional para os nomes dos relatórios de uso. Se não for especificado, o prefixo padrão será usage_gce.

API

Bibliotecas de cliente

Usando as bibliotecas de cliente, configure o método setUsageExportBucket() na coleção Projects para ativar a exportação de uso. Por exemplo, na Biblioteca de cliente Python, ative o recurso da maneira a seguir:

def setUsageExport(gce_service, auth_http):
  body = {
    "bucketName": "https://storage.googleapis.com/usage-export-sample",
    "reportNamePrefix": "exampleprefix"
  }

request = gce_service.projects().setUsageExportBucket(project=PROJECT_ID, body=body)
response = request.execute(http=auth_http)

print response

HTTP

Também é possível fazer uma solicitação HTTP diretamente para o método setUsageExportBucket. O exemplo a seguir usa a biblioteca httplib2 para ativar a exportação de uso:

#!/usr/bin/python

import urllib
import argparse
import logging
import sys
import random
from json import load,dumps
...

PROJECT_ID = "myproject"
API_VERSION = "v1"
API_URL = "https://www.googleapis.com/compute/" + API_VERSION + "/projects/" + PROJECT_ID
OAUTH_FILE = "oauth-dev.dat"

def main(argv):
  logging.basicConfig(level=logging.INFO)

  parser = argparse.ArgumentParser(
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    parents=[tools.argparser])

  # Parse the command-line flags.
  flags = parser.parse_args(argv[1:])

  http = httplib2.Http()

  # Add code to authenticate to the service
  ....

  url = API_URL + "/setUsageExportBucket"

  body = {
    "bucketName": "https://storage.googleapis.com/usage-export-sample",
    "reportNamePrefix": "exampleprefix"
  }

  formattedBody = dumps(body)
  resp,content = http.request(url,
                              "POST",
                              headers=listOfHeaders,
                              body=formattedBody)

  print str(content)

if __name__ == "__main__":
    main(sys.argv)

Para mais informações, consulte a documentação de referência da API.

Como fazer o download de relatórios de exportação de uso

Após começar a receber relatórios de uso no bucket, faça download dos relatórios da maneira que faria com outros objetos do Cloud Storage. Para mais informações, consulte Como fazer o download de objetos.

Métricas compatíveis

Os relatórios de uso diário fornecem informações de uso sobre os seguintes recursos:

  • Máquinas virtuais
  • Discos permanentes
  • Imagens
  • Instantâneos
  • Endereços IP estáticos
  • Balanceadores de carga

Cada recurso é descrito usando as seguintes métricas:

Nome da métrica Propriedades da métrica
Report Date
  • Tipo de métrica: string
  • Descrição: a data do uso.
  • Exemplo: 2019-08-15
MeasurementId
  • Tipo da métrica: string
  • Descrição: o ID do tipo de recurso que está sendo medido.
    Por exemplo, VmimageN2StandardCore_Uswest2 para representar um n2-standard no tipo de máquina us-west2.
  • Exemplo: com.google.cloud/services/compute‑engine/VmimageN2StandardCore_Uswest2
  • Exemplo: com.google.cloud/services/compute‑engine/VmimageN2StandardRam_Uswest2
Quantity
  • Tipo da métrica: inteiro
  • Descrição: a quantidade de uso na data especificada.
  • Exemplo: 86400
Unit
  • Tipo da métrica: string
  • Descrição: o tipo de unidade, como contagem, segundos, horas e assim por diante.
  • Exemplo: segundos
Resource URI
  • Tipo de métrica: string
  • Descrição: o URI do recurso especificado
  • Exemplo: https://compute.googleapis.com/compute/v1/projects/<project‑id>/zones/<zone>/instances/<instance>
ResourceId
  • Tipo da métrica: inteiro
  • Descrição: um ID numérico que identifica o recurso específico.
  • Exemplo: 16557630484925648021
Location
  • Tipo de métrica: string
  • Descrição: a localização do recurso. Pode ser o nome da zona ou da região, ou GLOBAL para recursos globais.
  • Exemplo: us-central1-a

Este é um exemplo de entrada no relatório:

Report Date MeasurementId Quantity Unit Resource URI Resource ID Location
02/13/2019 com.google.cloud/services/compute-engine/VmimageE2Standard_2 86400 seconds https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance 16557630484 us-central1-a

Controle de acesso

Ao ativar o recurso de exportação de uso para um bucket do Cloud Storage, o Compute Engine automaticamente adiciona a si mesmo ao bucket para enviar relatórios de uso. Enquanto o Compute Engine tiver acesso ao bucket e o recurso de exportação de uso estiver ativado, o Compute Engine continuará a exportar relatórios de uso para o bucket especificado do Cloud Storage.

Você poderá identificar que o Compute Engine tem acesso a um bucket se vir a seguinte identidade adicionada à lista de controle de acesso do bucket:

cloud-cluster-analytics-export@google.com

Qualquer usuário que seja proprietário do projeto tem acesso completo ao bucket do Google Cloud Storage. Outros usuários, como gravadores e leitores, têm diferentes graus de acesso ao bucket. Para saber mais sobre ACLs de um bucket, leia a documentação sobre controle de acesso do Cloud Storage.

Se você desativar o recurso de exportação de uso, o Compute Engine removerá automaticamente o acesso de gravação do Compute Engine no bucket. Se você modificar as permissões na conta cloud-cluster-analytics-export@google.com e desativar o recurso de exportação de uso, o Compute Engine desativará o recurso de exportação de uso, mas não removerá a conta da lista de acesso do projeto. Se você quiser, poderá remover a conta manualmente.

Como verificar se os relatórios de uso estão ativados

Você pode verificar as configurações de exportação de uso de um projeto nas informações dele:

gcloud compute project-info describe

Procure o campo usageExportLocation:

+-------------------------+----------------------------------------------------+
| name                    | myproject                                          |
| description             |                                                    |
| creation-time           | 2019-10-18T16:31:52.308-07:00                      |
| usage                   |                                                    |
|   snapshots             | 1.0/1000.0                                         |
|   networks              | 2.0/2.0                                            |
|   firewalls             | 3.0/10.0                                           |
|...                      |                                                    |
| usageExportLocation     |                                                    |
|   bucketName            | https://storage.googleapis.com/usage-export-sample |
|   reportNamePrefix      |                                                    |
+-------------------------+----------------------------------------------------+

Como desativar relatórios de uso

Ao desativar os relatórios de uso, o Compute Engine automaticamente remove o acesso de gravação do Compute Engine ao seu bucket do Cloud Storage e interrompe o envio de novos relatórios.

Console

  1. Acesse a página Configurações do Compute Engine (em inglês)

    Acesse Configurações do Compute Engine.

  2. Desmarque a caixa Ativar exportação de uso para desativar essa função.

gcloud

Em gcloud compute, para desativar o recurso de exportação de uso, execute o comando gcloud compute project-info set-usage-bucket com a sinalização --no-bucket:

gcloud compute project-info set-usage-bucket --no-bucket

API

Bibliotecas de cliente

Para usar as bibliotecas de cliente, faça uma solicitação para o método setUsageExportBucket() com um nome de bucket em branco. Por exemplo, na Biblioteca de cliente Python, desative o recurso da maneira a seguir:

def disableUsageExport(gce_service, auth_http):
  body = {
    "bucketName": "",
}

request = gce_service.projects().setUsageExportBucket(project=PROJECT_ID, body=body)
response = request.execute(http=auth_http)

print response

HTTP

Também é possível fazer uma solicitação HTTP diretamente para o método setUsageExportBucket. No exemplo a seguir, a biblioteca httplib2 faz uma solicitação para desativar o bucket de exportação do uso:

#!/usr/bin/python

import urllib
import argparse
import logging
import sys
import random
from json import load,dumps
...

PROJECT_ID = "myproject"
API_VERSION = "v1"
API_URL = "https://www.googleapis.com/compute/" + API_VERSION + "/projects/" + PROJECT_ID
OAUTH_FILE = "oauth-dev.dat"

def main(argv):
  logging.basicConfig(level=logging.INFO)

  parser = argparse.ArgumentParser(
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    parents=[tools.argparser])

  # Parse the command-line flags.
  flags = parser.parse_args(argv[1:])

  http = httplib2.Http()

  # Add code to authenticate to the service
  ....

  url = API_URL + "/setUsageExportBucket"

  body = {
     "bucketName": ""
  }

  formattedBody = dumps(body)
  resp,content = http.request(url,
                              "POST",
                              headers=listOfHeaders,
                              body=formattedBody)

  print str(content)

if __name__ == "__main__":
    main(sys.argv)

A seguir