Ver informes de uso


Compute Engine te permite exportar informes detallados de tu uso de Compute Engine a un depósito de Cloud Storage mediante la función de exportación de uso. Los informes de uso proporcionan información sobre la vida útil de sus recursos. Por ejemplo, puede ver cuántas instancias de VM en su proyecto ejecutan un tipo de máquina n2-standard-4 y cuánto tiempo ha estado ejecutándose cada instancia. También puedes revisar el espacio de almacenamiento de un disco persistente e información sobre otras funciones de Compute Engine.

Los informes de uso no proporcionan información de facturación o actividad, como información sobre solicitudes de API. Para obtener información de facturación, consulta la función Exportar datos de facturación de Cloud a BigQuery . Para un registro de actividades administrativas y accesos dentro de suGoogle Cloud recursos, consulte Registros de auditoría .

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. Python

      Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      1. Install the Google Cloud CLI.
      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      Para obtener más información, consulta Set up authentication for a local development environment.

Descripción general

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

  1. Informes de uso diario

    Estos informes se entregan diariamente e incluyen datos de uso del día anterior. Cada informe es un archivo separado que contiene datos del último período. Los datos de estos informes son inmutables, lo que significa que Compute Engine no actualiza ni reescribe el archivo de registro si hay imprecisiones. En cambio, los datos se corrigen en el siguiente informe nuevo que se entrega al depósito.

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

     <bucket>/<reportprefix><numeric_projectid><YYYYMMDD>.csv
     

  2. Informe acumulativo mensual

    Diariamente se entrega un único informe acumulativo mensual, que contiene 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 recursos hasta esa fecha. Sólo hay un archivo de datos de uso mensual por proyecto, por mes.

    Los informes acumulativos mensuales tienen el siguiente formato de nombre:

     <bucket>/<reportprefix><numeric_projectid><YYYYMM>.csv
     

    Los archivos de informes diarios y mensuales son muy similares, excepto por la diferencia en el formato de fecha, donde los informes acumulativos mensuales están fechados usando el año y el mes ( YYYYMM ), y los informes de uso diario están fechados usando el año, mes y fecha ( YYYYMMDD ).

Todos los informes de uso se entregan en formato de valores separados por comas (CSV) y los archivos de informes de uso tienen el prefijo <report_prefix> . El <report_prefix> es un valor personalizable elegido por el usuario. Si no especifica un prefijo de informe, el prefijo usage_gce se utiliza de forma predeterminada. Todos los horarios se dan en hora del Pacífico (PST).

Requisitos previos

Antes de que puedas comenzar a utilizar la exportación de uso de Compute Engine:

Configurar la exportación de uso

Cuando habilita por primera vez la función de exportación de uso, el primer informe se envía al día siguiente y detalla el uso del día anterior. Posteriormente, recibirá informes en intervalos de 24 horas.

Cuando habilita esta característica, debe definir dos propiedades:

  1. El depósito de Cloud Storage donde desea que se entreguen sus informes.

    Puede seleccionar cualquier depósito de Cloud Storage del que sea propietario, incluidos los depósitos que pertenecen a diferentes proyectos. Este depósito debe existir antes de que pueda comenzar a exportar informes y debe tener acceso de propietario al depósito. Cloud Storage cobra por el uso, por lo que debe revisar los precios de Cloud Storage para obtener información sobre cómo podría incurrir en cargos por el servicio.

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

  2. El prefijo del informe para sus archivos.

    Puede especificar el prefijo del informe que desea utilizar en sus informes de uso. Sus informes de uso tendrán nombres de archivos que contienen este prefijo. Por ejemplo, al especificar "my-cool-project-report" como prefijo de informe, se obtiene un nombre de archivo similar al formato my-cool-project-report_1234567890_20131230.csv . Si no especifica un prefijo de informe, se utiliza el prefijo predeterminado usage_gce .

Después de decidir sobre estas dos propiedades, puede habilitar la función de exportación de uso de las siguientes maneras:

Consola

  1. Vaya a la página de configuración de Compute Engine .

    Vaya a Configuración de Compute Engine .

  2. Marque la casilla Habilitar exportación de uso .

  3. Complete el campo solicitando un nombre de depósito . Opcionalmente, proporcione un prefijo de informe . Si deja el prefijo del informe vacío, se utiliza el prefijo predeterminado usage_gce . Todos los informes de uso entregados al depósito se denominan con este prefijo.

  4. Haga clic en Guardar .

nube de gcloud

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

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

Reemplace lo siguiente:

  • BUCKET_NAME es el nombre de un depósito existente para recibir los informes de uso. El nombre debe tener el formato gs:// bucket-name o https://storage.googleapis.com/ bucket-name . El usuario que ejecuta este comando debe ser propietario del depósito.
  • PREFIX es el prefijo opcional para los nombres de los informes de uso. Si no se especifica, el prefijo predeterminado es usage_gce .

Pitón

Para habilitar las exportaciones de uso, utilice el método set_usage_export_bucket() en la colección Projects . El siguiente ejemplo utiliza las bibliotecas cliente de nube para Python:

from __future__ import annotations

import sys
from typing import Any

from google.api_core.extended_operation import ExtendedOperation
from google.cloud import compute_v1




def wait_for_extended_operation(
    operation: ExtendedOperation, verbose_name: str = "operation", timeout: int = 300
) -> Any:
    """
    Waits for the extended (long-running) operation to complete.

    If the operation is successful, it will return its result.
    If the operation ends with an error, an exception will be raised.
    If there were any warnings during the execution of the operation
    they will be printed to sys.stderr.

    Args:
        operation: a long-running operation you want to wait on.
        verbose_name: (optional) a more verbose name of the operation,
            used only during error and warning reporting.
        timeout: how long (in seconds) to wait for operation to finish.
            If None, wait indefinitely.

    Returns:
        Whatever the operation.result() returns.

    Raises:
        This method will raise the exception received from `operation.exception()`
        or RuntimeError if there is no exception set, but there is an `error_code`
        set for the `operation`.

        In case of an operation taking longer than `timeout` seconds to complete,
        a `concurrent.futures.TimeoutError` will be raised.
    """
    result = operation.result(timeout=timeout)

    if operation.error_code:
        print(
            f"Error during {verbose_name}: [Code: {operation.error_code}]: {operation.error_message}",
            file=sys.stderr,
            flush=True,
        )
        print(f"Operation ID: {operation.name}", file=sys.stderr, flush=True)
        raise operation.exception() or RuntimeError(operation.error_message)

    if operation.warnings:
        print(f"Warnings during {verbose_name}:\n", file=sys.stderr, flush=True)
        for warning in operation.warnings:
            print(f" - {warning.code}: {warning.message}", file=sys.stderr, flush=True)

    return result


def set_usage_export_bucket(
    project_id: str, bucket_name: str, report_name_prefix: str = ""
) -> None:
    """
    Set Compute Engine usage export bucket for the Cloud project.
    This sample presents how to interpret the default value for the
    report name prefix parameter.

    Args:
        project_id: project ID or project number of the project to update.
        bucket_name: Google Cloud Storage bucket used to store Compute Engine
            usage reports. An existing Google Cloud Storage bucket is required.
        report_name_prefix: Prefix of the usage report name which defaults to an empty string
            to showcase default values behaviour.
    """
    usage_export_location = compute_v1.UsageExportLocation()
    usage_export_location.bucket_name = bucket_name
    usage_export_location.report_name_prefix = report_name_prefix

    if not report_name_prefix:
        # Sending an empty value for report_name_prefix results in the
        # next usage report being generated with the default prefix value
        # "usage_gce". (ref: https://cloud.google.com/compute/docs/reference/rest/v1/projects/setUsageExportBucket)
        print(
            "Setting report_name_prefix to empty value causes the report "
            "to have the default prefix of `usage_gce`."
        )

    projects_client = compute_v1.ProjectsClient()
    operation = projects_client.set_usage_export_bucket(
        project=project_id, usage_export_location_resource=usage_export_location
    )

    wait_for_extended_operation(operation, "setting GCE usage bucket")

Para obtener más información, consulte la documentación de referencia de REST para projects.setUsageExportBucket

Descarga de informes de exportación de uso

Después de comenzar a recibir informes de uso en su depósito, descargue sus informes como descargaría otros objetos de Cloud Storage. Para obtener más información, consulte Descargar objetos .

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 carga
  • Reservas

Cada recurso se describe utilizando las siguientes métricas:

Nombre de la métrica Propiedades métricas
Fecha del informe
  • Tipo de métrica: cadena
  • Descripción: La fecha del uso.
  • Ejemplo: 2019-08-15
Id. de medición
  • Tipo de métrica: cadena
  • Descripción: El ID del tipo de recurso que se está midiendo.
    Por ejemplo, VmimageN2StandardCore_Uswest2 para representar un tipo de máquina n2-standard en us-west2 .
  • Ejemplo: com.google.cloud/services/compute‑engine/VmimageN2StandardCore_Uswest2
  • Ejemplo: com.google.cloud/services/compute‑engine/VmimageN2StandardRam_Uswest2
Cantidad
  • Tipo de métrica: entero
  • Descripción: La cantidad de uso para la fecha especificada.
  • Ejemplo: 86400
Unidad
  • Tipo de métrica: cadena
  • Descripción: el tipo de unidad, como recuento, segundos u horas.
  • Ejemplo: segundos
URI de recurso
  • Tipo de métrica: cadena
  • Descripción: el URI del recurso especificado.
  • Ejemplo: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-n2-vm
ID de recurso
  • Tipo de métrica: entero
  • Descripción: ID numérico que identifica el recurso específico.
  • Ejemplo: 16557630484925648021
Ubicación
  • Tipo de métrica: cadena
  • 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 sería similar a la siguiente:

Fecha del informe Id. de medición Cantidad Unidad URI de recurso ID de recurso Ubicación
13/02/2019 com.google.cloud/services/compute-engine/VmimageE2Standard_2 86400 artículos de segunda clase https://compute.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. Siempre que Compute Engine tenga acceso al depósito y la función de exportación de uso esté habilitada, Compute Engine continúa exportando informes de uso al depósito de Cloud Storage especificado.

Puedes identificar que Compute Engine tiene acceso a un depósito si ves la siguiente identidad agregada a la política de IAM del depósito:

cloud-cluster-analytics-export@google.com

Cualquier usuario que sea propietario del proyecto tiene acceso completo al depósito de Cloud Storage. Otros usuarios, como escritores y lectores, tienen diferentes grados de acceso al depósito. Para obtener más información sobre IAM para un depósito, lea IAM para Cloud Storage .

Si desactivas la función de exportación de uso, Compute Engine elimina automáticamente el acceso de escritura de Compute Engine al depósito. Si modifica los permisos en la cuenta cloud-cluster-analytics-export@google.com y luego desactiva la función de exportación de uso, Compute Engine desactiva la función de exportación de uso pero no elimina la cuenta de la lista de acceso al proyecto. Puede eliminar la cuenta manualmente.

Comprobando si los informes de uso están habilitados

Puede verificar la configuración de exportación de uso de un proyecto obteniendo información sobre el proyecto:

gcloud compute project-info describe

Busque el 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      |                                                    |
+-------------------------+----------------------------------------------------+

Desactivar informes de uso

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

Consola

  1. Vaya a la página de configuración de Compute Engine .

    Vaya a Configuración de Compute Engine .

  2. Desmarque la casilla Habilitar exportación de uso para deshabilitar la exportación de uso.

nube de gcloud

Deshabilite la función de exportación de uso mediante el comando gcloud compute project-info set-usage-bucket con la marca --no-bucket :

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

Pitón

Para deshabilitar las exportaciones de uso, use el método set_usage_export_bucket() en la colección Projects con usage_export_location_resource establecido en None . El siguiente ejemplo utiliza las bibliotecas cliente de nube para Python:

from __future__ import annotations

import sys
from typing import Any

from google.api_core.extended_operation import ExtendedOperation
from google.cloud import compute_v1




def wait_for_extended_operation(
    operation: ExtendedOperation, verbose_name: str = "operation", timeout: int = 300
) -> Any:
    """
    Waits for the extended (long-running) operation to complete.

    If the operation is successful, it will return its result.
    If the operation ends with an error, an exception will be raised.
    If there were any warnings during the execution of the operation
    they will be printed to sys.stderr.

    Args:
        operation: a long-running operation you want to wait on.
        verbose_name: (optional) a more verbose name of the operation,
            used only during error and warning reporting.
        timeout: how long (in seconds) to wait for operation to finish.
            If None, wait indefinitely.

    Returns:
        Whatever the operation.result() returns.

    Raises:
        This method will raise the exception received from `operation.exception()`
        or RuntimeError if there is no exception set, but there is an `error_code`
        set for the `operation`.

        In case of an operation taking longer than `timeout` seconds to complete,
        a `concurrent.futures.TimeoutError` will be raised.
    """
    result = operation.result(timeout=timeout)

    if operation.error_code:
        print(
            f"Error during {verbose_name}: [Code: {operation.error_code}]: {operation.error_message}",
            file=sys.stderr,
            flush=True,
        )
        print(f"Operation ID: {operation.name}", file=sys.stderr, flush=True)
        raise operation.exception() or RuntimeError(operation.error_message)

    if operation.warnings:
        print(f"Warnings during {verbose_name}:\n", file=sys.stderr, flush=True)
        for warning in operation.warnings:
            print(f" - {warning.code}: {warning.message}", file=sys.stderr, flush=True)

    return result


def disable_usage_export(project_id: str) -> None:
    """
    Disable Compute Engine usage export bucket for the Cloud Project.

    Args:
        project_id: project ID or project number of the project to update.
    """
    projects_client = compute_v1.ProjectsClient()

    # Setting `usage_export_location_resource` to an
    # empty object will disable the usage report generation.
    operation = projects_client.set_usage_export_bucket(
        project=project_id, usage_export_location_resource={}
    )

    wait_for_extended_operation(operation, "disabling GCE usage bucket")

¿Qué sigue?