Ve informes de uso

Compute Engine te permite exportar informes detallados de tu uso de Compute Engine a un depósito de Google Cloud Storage mediante la función de exportación de uso. Los informes de uso proporcionan información sobre la vida útil de tus recursos. Por ejemplo, puedes ver cuántas de tus instancias ejecutan una imagen n1-standard-1 y cuánto tiempo lleva ejecutándose cada instancia. Los informes de uso no proporcionan datos de facturación o de actividad, como información sobre solicitudes a la API. Para obtener datos de facturación, consulta la función de exportación de facturación. Para ver los registros de actividad, consulta los registros de actividad.

Los registros de uso están disponibles en la página de configuración de Compute Engine como archivos CSV. En los registros, se describe el uso a nivel de los recursos, como el tiempo de ejecución de una instancia de máquina virtual, el espacio de almacenamiento de un disco persistente y la información sobre otras funciones de Compute Engine.

Antes de comenzar

Descripción general

Cuando habilitas los informes de uso, Compute Engine entrega dos tipos de informes al depósito de Google Cloud Storage que especifiques:

  1. Informes de uso diario

    Estos informes se envían diariamente y contienen datos de uso del día anterior. Cada informe es un archivo separado que contiene datos del último período. Los datos en estos informes son inmutables, lo que significa que Compute Engine no actualizará ni reescribirá el archivo de registro si hay errores. En cambio, los datos se corrigen en el próximo informe nuevo que se entrega al depósito.

    Los informes de uso diario tienen el siguiente formato de nombre:

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMMDD>.csv
    
  2. Informe acumulativo mensual

    Se entrega un solo informe acumulativo mensual, que contiene los datos de uso mensual para ese proyecto hasta ese día, pero sin incluirlo. El informe de uso mensual se sobrescribe cada día con nuevos datos que reflejan el uso mensual de los recursos hasta esa fecha. Solo habrá un archivo de datos de uso mensual por proyecto, por mes.

    Los informes acumulativos mensuales tienen el siguiente formato de nombre:

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

    Los archivos de informes diarios y mensuales tienen un aspecto muy similar, excepto por la diferencia en el formato de fecha: los informes acumulativos mensuales se fechan con el año y el mes (YYYYMM), mientras que los informes de uso diario se fechan con el año, el mes y el día (YYYYMMDD).

Todos los informes de uso se entregan en formato de valores separados por comas (CSV) y los archivos de informe de uso tienen el prefijo <report_prefix>. <report_prefix> es un valor personalizado que elige el usuario. Si no se especifica un prefijo de informe, se usará el prefijo usage_gce de manera predeterminada. Todas las horas se expresan según la hora del Pacífico (PST).

Métricas admitidas

Los informes de uso diario proporcionan información de uso sobre los siguientes recursos:

  • Máquinas virtuales
  • Discos persistentes
  • Imágenes
  • Instantáneas
  • Direcciones IP estáticas
  • Balanceadores de cargas

Cada recurso se describe según las siguientes métricas:

Nombre de la métrica Propiedades de la métrica
Fecha del informe
  • Tipo de métrica: string
  • Descripción: la fecha de uso
  • Ejemplo: 2013-08-15
ID de medición
  • Tipo de métrica: string
  • Descripción: ID del tipo de recurso que se está midiendo. Por ejemplo, VmimageN1Standard_1 para representar un tipo de máquina n1-standard-1.
  • Ejemplo: com.google.cloud/services/compute‑engine/VmimageN1Standard_1
Cantidad
  • Tipo de métrica: número entero
  • Descripción: la cantidad de uso para la fecha especificada
  • Ejemplo: 86400
Unidad
  • Tipo de métrica: string
  • Descripción: el tipo de unidad, como conteo, segundos, horas y más
  • Ejemplo: segundos
URI de recursos
  • Tipo de métrica: string
  • Descripción: el URI del recurso especificado
  • Ejemplo: https://www.googleapis.com/compute/v1/projects/<project‑id>/zones/<zone>/instances/<instance>
ID del recurso
  • Tipo de métrica: número entero
  • Descripción: un ID numérico que identifica el recurso específico
  • Ejemplo: 16557630484925648021
Ubicación
  • Tipo de métrica: string
  • Descripción: la ubicación del recurso, ya sea un nombre de zona o región, o GLOBAL para recursos globales
  • Ejemplo: us-central1-a

Una entrada de ejemplo en el informe se vería de la siguiente forma:

Fecha del informe ID de medición Cantidad Unidad URI de recursos ID del recurso Ubicación
02/13/2014 com.google.cloud/services/compute-engine/VmimageN1Standard_1 86400 segundos https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance 16557630484 us-central1-a

Control de acceso

Cuando habilitas la función de exportación de uso para un depósito de Cloud Storage, Compute Engine se agrega automáticamente al depósito con acceso de escritura para entregar informes de uso. Mientras Compute Engine tenga acceso al depósito y la función de exportación de uso esté habilitada, Compute Engine continuará exportando informes de uso al depósito de Cloud Storage especificado.

Si ves que se agrega la siguiente identidad a la lista de control de acceso al depósito, significa que Compute Engine tiene acceso al depósito:

cloud-cluster-analytics-export@google.com

Cualquier usuario que sea propietario del proyecto tiene acceso completo al depósito de Google Cloud Storage. Otros usuarios, como escritores y lectores, tienen diferentes grados de acceso al depósito. Si deseas obtener información sobre las LCA para un depósito, consulta la documentación de control de acceso de Cloud Storage.

Si inhabilitas la función de exportación de uso, Compute Engine quitará automáticamente el acceso de escritura de Compute Engine al depósito. Si modificas los permisos en la cuenta cloud-cluster-analytics-export@google.com y, luego, inhabilitas la función de exportación de uso, Compute Engine inhabilitará la función de exportación de uso, pero no quitará la cuenta de la lista de acceso al proyecto. Si lo deseas, puedes quitar la cuenta manualmente.

Requisitos previos

Antes de que puedas comenzar a utilizar la exportación de uso de Compute Engine, debes registrarte en Google Cloud Storage, si aún no lo hiciste.

Configura la exportación de uso

Cuando habilitas por primera vez la función de exportación de uso, el primer informe se enviará al día siguiente y contendrá información detallada sobre el uso del día anterior. Luego, recibirás informes cada 24 horas.

Para configurar la función de exportación de uso, tienes que habilitarla en la herramienta de gcloud compute. Cuando habilitas la función, debes definir dos propiedades:

  1. El depósito de Google Cloud Storage al que deseas enviar tus informes

    Puedes seleccionar cualquier depósito de Cloud Storage del que seas propietario, incluidos los depósitos de diferentes proyectos. Este depósito debe existir antes de que puedas comenzar a exportar informes y debes tener acceso de propietario al depósito. Google Cloud Storage cobra por el uso, por lo tanto, deberás consultar la hoja de precios de Cloud Storage para obtener información sobre los gastos en los que puedes incurrir por el servicio.

    Cualquier usuario que tenga acceso de lectura al depósito de Cloud Storage podrá ver los informes de uso en el depósito. Cualquier usuario que tenga acceso de escritura al depósito podrá crear, ver y modificar archivos existentes en el depósito. Para obtener más información, consulta la sección Control de acceso.

  2. El prefijo de informe para tus archivos

    Puedes especificar el prefijo de informe para usar en tus informes de uso. Los informes de uso tendrán nombres de archivo que incluirán este prefijo. Por ejemplo, si especificas “my-cool-project-report” como el prefijo de tu informe, obtendrás un nombre de archivo similar al formato my-cool-project-report_1234567890_20131230.csv. Si no especificas un prefijo de informe, se utiliza el prefijo predeterminado usage_gce.

Después de definir estas dos propiedades, puedes habilitar la función de exportación de uso de las siguientes maneras:

Console


  1. Ve a la página Configuración de Compute Engine.
  2. Haz clic en Habilitar exportación de uso.
  3. Completa los campos que solicitan un nombre de depósito y un prefijo de informe, si lo deseas. Si no completas el prefijo de informe, se usará el prefijo predeterminado usage_gce.
  4. Haz clic en Guardar.

gcloud


En gcloud compute, usa el comando gcloud compute project-info set-usage-bucket para habilitar esta función:

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

El URI para el depósito puede tener el formato gs://<bucket-name> o https://storage.googleapis.com/<bucket-name>.

API

Bibliotecas cliente

Con las bibliotecas cliente, configura el método setUsageExportBucket() en la colección Projects para habilitar la exportación de uso. Por ejemplo, en la biblioteca cliente de Python, puedes habilitar la función de esta manera:

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

También puedes realizar una solicitud HTTP directamente al método setUsageExportBucket. En el siguiente ejemplo, se usa la biblioteca httplib2 para habilitar la exportación 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 obtener más información, consulta la documentación de referencia de la API.

Comprueba si los informes de uso están habilitados

Puedes verificar la configuración de exportación de uso de un proyecto si obtienes información sobre él:

gcloud compute project-info describe

Busca el campo usageExportLocation:

+-------------------------+----------------------------------------------------+
| name                    | myproject                                          |
| description             |                                                    |
| creation-time           | 2012-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      |                                                    |
+-------------------------+----------------------------------------------------+

Inhabilita los informes de uso

Cuando inhabilitas los informes de uso, Compute Engine quita automáticamente el acceso de escritura de Compute Engine a tu depósito de Cloud Storage y deja de enviar informes nuevos.

Console


  1. Ve a la página Configuración de Compute Engine.
  2. Haz clic en Inhabilitar exportación de uso.

gcloud


En gcloud compute, puedes inhabilitar la función de exportación de uso con el comando gcloud compute project-info set-usage-bucket que tiene el marcador --no-bucket:

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

API

Bibliotecas cliente

Para usar las bibliotecas cliente, realiza una solicitud al método setUsageExportBucket(), con un nombre de depósito en blanco. Por ejemplo, en la biblioteca cliente de Python, puedes inhabilitar la función de esta manera:

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

También puedes realizar una solicitud HTTP directamente al método setUsageExportBucket. En el siguiente ejemplo, se usa la biblioteca httplib2 para realizar una solicitud que permita inhabilitar el depósito de exportación 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": ""
  }

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

  print str(content)

if __name__ == "__main__":
    main(sys.argv)
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine