Visualizzazione dei rapporti di utilizzo


Compute Engine consente di esportare report dettagliati Utilizzo di Compute Engine in un bucket Cloud Storage usando la funzionalità di esportazione dell'utilizzo. I report sull'utilizzo forniscono informazioni su per tutta la durata delle tue risorse. Ad esempio, puoi vedere quante istanze VM il tuo progetto esegue un tipo di macchina n2-standard-4 e per quanto tempo sia in esecuzione. Puoi anche esaminare lo spazio di archiviazione di un disco permanente e informazioni su altre funzionalità di Compute Engine.

I report sull'utilizzo non forniscono informazioni sulla fatturazione o sulle attività, come e informazioni sulle richieste API. Per i dati di fatturazione, consulta Esportazione della fatturazione funzionalità. Per i log delle attività, vedi Log delle attività.

Prima di iniziare

  • Se non l'hai già fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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. Install the Google Cloud CLI, then initialize it by running the following command:

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

      Per utilizzare gli Python esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

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

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

Panoramica

Quando abiliti i report sull'utilizzo, Compute Engine fornisce due tipi di al bucket Cloud Storage specificato:

  1. Report sull'utilizzo giornaliero

    Questi report vengono generati quotidianamente e includono i dati di utilizzo del giorno precedente. Ogni report è un file separato che contiene i dati dell'ultimo periodo. I dati di questi report sono immutabili, il che significa che Compute Engine non aggiorna o riscrive il log se sono presenti inesattezze. I dati vengono invece corretti nel successivo nuovo report inviato al bucket.

    I report sull'utilizzo giornaliero hanno il seguente formato del nome:

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMMDD>.csv
    
  2. Report di aggregazione mensile

    Ogni giorno viene pubblicato un singolo report di aggregazione mensile che contiene dati sull'utilizzo per quel progetto fino al giorno stesso, escluso. Il piano mensile vengono sovrascritti ogni giorno con nuovi dati che riflettono di utilizzo mensile delle risorse fino a quella data. C'è solo un mese di dati sull'utilizzo per progetto al mese.

    I report di aggregazione mensile hanno il seguente formato del nome:

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

    I file dei report giornalieri e mensili sono molto simili, ad eccezione dei differenza nel formato della data, in cui i report di aggregazione mensili sono datati utilizzando l'anno e il mese (YYYYMM) e i report sull'utilizzo giornaliero siano datati utilizzando l'anno, il mese e il giorno (YYYYMMDD).

Tutti i report sull'utilizzo vengono inviati in formato valori separati da virgole (CSV) e i file dei report sull'utilizzo hanno il prefisso <report_prefix>. <report_prefix> è un valore personalizzabile scelto dall'utente. Se non specifichi un prefisso, per impostazione predefinita viene utilizzato il prefisso usage_gce. Tutti gli orari sono indicati nel fuso orario del Pacifico (PST).

Prerequisiti

Per poter iniziare a utilizzare l'esportazione dell'utilizzo di Compute Engine:

Configurazione dell'esportazione dell'utilizzo in corso...

Quando attivi per la prima volta la funzionalità di esportazione dell'utilizzo, viene inviato il primo report il giorno successivo, con informazioni dettagliate sull'utilizzo del giorno precedente. In seguito, ricevere report a intervalli di 24 ore.

Per impostare la funzione di esportazione dell'utilizzo, abilitala nel gcloud compute. Se attivi questa opzione, devi definire due proprietà:

  1. Il bucket Cloud Storage in cui devi ad esempio la consegna dei report.

    Puoi selezionare qualsiasi bucket Cloud Storage di cui sei proprietario, inclusi i bucket di progetti diversi. Questo bucket deve esistere prima di poter iniziare a esportare i report e devi disporre dell'accesso come proprietario nel bucket. Cloud Storage addebita i costi di utilizzo, quindi dovresti verificare Prezzi di Cloud Storage per informazioni su come potrebbe comportare dei costi per il servizio.

    Qualsiasi utente con accesso in lettura al bucket Cloud Storage può visualizzare i report sull'utilizzo nel bucket. Qualsiasi utente con accesso in scrittura bucket può creare, visualizzare e modificare i file esistenti nel bucket. Per ulteriori informazioni consulta la sezione Controllo dell'accesso.

  2. Il prefisso del report per i tuoi file.

    Puoi specificare il prefisso del report da utilizzare per i report sull'utilizzo. I report sull'utilizzo hanno quindi nomi di file che contengono questo prefisso. Ad esempio: specifica "my-cool-project-report" poiché il prefisso del report restituisce un file un nome simile al formato my-cool-project-report_1234567890_20131230.csv. Se non specifichi un , viene utilizzato il prefisso predefinito usage_gce.

Dopo aver scelto queste due proprietà, puoi abilitare l'esportazione dell'utilizzo nei seguenti modi:

Console

  1. Vai alla pagina Impostazioni di Compute Engine.

    Vai alle impostazioni di Compute Engine.

  2. Seleziona la casella Abilita esportazione dell'utilizzo.

  3. Compila il campo che richiede un nome del bucket. Facoltativamente, fornisci un Prefisso report, se vuoi. Se lasci vuoto il prefisso del report, Viene utilizzato il prefisso predefinito usage_gce. Tutti i report sull'utilizzo inviati al separato vengono denominati con questo prefisso.

  4. Fai clic su Salva.

gcloud

In gcloud compute, utilizza il comando gcloud compute project-info set-usage-bucket per attivare questa funzionalità:

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

Dove:

  • [BUCKET_NAME] è il nome di un bucket esistente che riceverà l'utilizzo report. Deve essere nel formato gs://<bucket-name> o https://storage.googleapis.com/<bucket-name>. L'utente che esegue questo comando deve essere un proprietario del bucket.
  • [PREFIX] è il prefisso facoltativo per i nomi dei report sull'utilizzo. In caso contrario specificato, il prefisso predefinito è usage_gce.

Python

Per abilitare le esportazioni dell'utilizzo, usa il metodo set_usage_export_bucket() nella Raccolta Projects. L'esempio seguente utilizza il metodo Librerie client di Cloud per 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")

Per ulteriori informazioni, consulta la documentazione di riferimento delle API per projects.setUsageExportBucket

Download dei report sull'esportazione dell'utilizzo

Dopo aver iniziato a ricevere i report sull'utilizzo nel bucket, scarica i report allo stesso modo del download di altri oggetti da Cloud Storage. Per ulteriori informazioni per ulteriori informazioni, consulta l'articolo Scaricare oggetti.

Metriche supportate

I report sull'utilizzo giornaliero forniscono informazioni sull'utilizzo delle seguenti risorse:

  • Macchine virtuali
  • Dischi permanenti
  • Immagini
  • Snapshot
  • Indirizzi IP statici
  • Bilanciatori del carico
  • Prenotazioni

Ogni risorsa viene descritta utilizzando le seguenti metriche:

Nome metrica Proprietà metrica
Data report
  • Tipo di metrica: stringa
  • Descrizione: la data di utilizzo.
  • Esempio: 2019-08-15
MeasurementId
  • Tipo di metrica: stringa
  • Descrizione: l'ID del tipo di risorsa che viene misurata.
    Ad esempio, VmimageN2StandardCore_Uswest2 per rappresentare un n2-standard nel tipo di macchina us-west2.
  • Esempio: com.google.cloud/services/compute‑engine/VmimageN2StandardCore_Uswest2
  • Esempio: com.google.cloud/services/compute‑engine/VmimageN2StandardRam_Uswest2
Quantità
  • Tipo di metrica: numero intero
  • Descrizione: la quantità di utilizzo per la data specificata.
  • Esempio: 86400
Unità
  • Tipo di metrica: stringa
  • Descrizione: il tipo di unità, ad esempio conteggio, secondi, ore e così via attiva.
  • Esempio: secondi
URI risorsa
  • Tipo di metrica: stringa
  • Descrizione: l'URI della risorsa specificata.
  • Esempio: https://compute.googleapis.com/compute/v1/projects/<project‑id>/zones/<zone>/instances/<instance>
ID risorsa
  • Tipo di metrica: numero intero
  • Descrizione: un ID numerico che identifica la risorsa specifica.
  • Esempio: 16557630484925648021
Località
  • Tipo di metrica: stringa
  • Descrizione: la località della risorsa. Una zona o una regione o GLOBAL per le risorse globali.
  • Esempio: us-central1-a

Una voce di esempio nel report potrebbe avere il seguente aspetto:

Data report MeasurementId Quantità Unità URI risorsa ID risorsa Località
13/02/2019 com.google.cloud/services/compute-engine/VmimageE2Standard_2 86400 secondi https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance 16557630484 us-central1-a

Controllo degli accessi

Quando abiliti la funzionalità di esportazione dell'utilizzo per un bucket Cloud Storage, Compute Engine si aggiunge automaticamente al bucket tramite scrittura per fornire report sull'utilizzo. Purché Compute Engine ha accesso al bucket e la funzionalità di esportazione dell'utilizzo è abilitata, Compute Engine continua a esportare i report sull'utilizzo nell'oggetto nel bucket Cloud Storage.

Per capire se Compute Engine ha accesso a un bucket, vedi la seguente identità aggiunta al criterio IAM del bucket:

cloud-cluster-analytics-export@google.com

Qualsiasi utente proprietario del progetto ha accesso completo nel bucket Cloud Storage. Altri utenti, come scrittori e lettori, hanno gradi diversi di accesso al bucket. Scopri di più su IAM per un bucket, leggiamo IAM per Cloud Storage.

Se disabiliti la funzionalità di esportazione dell'utilizzo, Compute Engine automaticamente rimuove l'accesso in scrittura da Compute Engine al bucket. Se modifichi le autorizzazioni nel campo [email protected] e poi disabilitare la funzionalità di esportazione dell'utilizzo, Compute Engine. disattiva la funzionalità di esportazione dell'utilizzo ma non rimuoverà l'account dal progetto per gli accessi. Se vuoi, puoi scegliere di rimuovere l'account manualmente.

Controllo dell'attivazione dei report sull'utilizzo in corso...

Puoi controllare le impostazioni di esportazione dell'utilizzo di un progetto informazioni sul progetto:

gcloud compute project-info describe

Cerca il 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      |                                                    |
 ------------------------- ---------------------------------------------------- 

Disattivare i report sull'utilizzo

Quando disabiliti i report sull'utilizzo, Compute Engine rimuove automaticamente accesso in scrittura a Compute Engine nel bucket Cloud Storage e interrompe l'invio di nuovi rapporti.

Console

  1. Vai alla pagina Impostazioni Compute Engine.

    Vai alle impostazioni di Compute Engine.

  2. Deseleziona la casella Abilita esportazione dell'utilizzo per disattivare l'esportazione dell'utilizzo.

gcloud

In gcloud compute, disattiva la funzionalità di esportazione dell'utilizzo eseguendo l' gcloud compute project-info set-usage-bucket con il flag --no-bucket:

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

Python

Per disabilitare le esportazioni dell'utilizzo, utilizza set_usage_export_bucket() nella raccolta Projects con usage_export_location_resource impostato su None. L'esempio seguente utilizza le librerie client di Cloud per 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")

Passaggi successivi