Nutzungsberichte ansehen


Mit Compute Engine können Sie detaillierte Berichte über Ihre Compute Engine-Nutzung mithilfe des Nutzungsexportfeatures in einen Cloud Storage-Bucket exportieren. Die Nutzungsberichte geben Auskunft über die Lebensdauer Ihrer Ressourcen. Sie können beispielsweise sehen, wie viele VM-Instanzen in Ihrem Projekt den Maschinentyp n2-standard-4 ausführen und wie lange jede Instanz bereits läuft. Sie können auch den Speicherplatz eines nichtflüchtigen Speichers und Informationen zu anderen Compute Engine-Funktionen einsehen.

Die Nutzungsberichte liefern keine Informationen zur Abrechnung oder Aktivitäten, wie zum Beispiel API-Anfragen. Weitere Informationen zur Abrechnung finden Sie in dem Feature Abrechnungsexport. Weitere Informationen zu Aktivitätslogs finden Sie unter Aktivitätslogs.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    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

      Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      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.

      Weitere Informationen unter Set up authentication for a local development environment.

Übersicht

Wenn Sie die Nutzungsberichte aktivieren, liefert die Compute Engine zwei Arten von Berichten an den von Ihnen angegebenen Cloud Storage-Bucket:

  1. Tägliche Nutzungsberichte

    Diese Berichte werden täglich geliefert und enthalten die Nutzungsdaten vom Vortag. Jeder Bericht ist eine separate Datei, die Daten aus dem letzten Zeitraum enthält. Die Daten in diesen Berichten sind unveränderlich, was bedeutet, dass Compute Engine die Protokolldatei weder aktualisieren noch neu schreiben wird, wenn es Ungenauigkeiten gibt. Stattdessen werden die Daten im nächsten neuen Bericht korrigiert, der an den Bucket geliefert wird.

    Die täglichen Nutzungsberichte tragen das folgende Namensformat:

    <bucket>/<report_prefix>_<numeric_project_id>_<YYYYMMDD>.csv
    
  2. Monatlicher Rollup-Bericht

    Ein einziger monatlicher Rollup-Bericht wird täglich geliefert, der die monatlichen Nutzungsdaten für dieses Projekt bis zu diesem Tag, aber nicht einschließlich der Daten dieses Tages enthält. Der monatliche Nutzungsbericht wird jeden Tag mit neuen Daten überschrieben, die die monatliche Nutzung von Ressourcen bis zu diesem Zeitpunkt widerspiegelt. Es gibt nur eine monatliche Datei mit den Nutzungsdaten pro Projekt und pro Monat.

    Monatliche Rollup-Berichte haben das folgende Namensformat:

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

    Die täglichen und monatlichen Berichtsdateien sehen sehr ähnlich aus, unterscheiden sich aber im Datumsformat. Die monatlichen Rollup-Berichte werden mit dem Jahr und dem Monat datiert (YYYYMM) und die täglichen Nutzungsberichte mit dem Jahr, Monat und Datum (YYYYMMDD).

Alle Nutzungsberichte werden im CSV-Format (kommagetrennte Werte) erstellt und die Nutzungsberichtdateien mit <report_prefix> vorangestellt. <report_prefix> ist ein anpassbarer, vom Nutzer gewählter Wert. Wenn Sie kein Berichtspräfix angeben, wird standardmäßig das Präfix usage_gce verwendet. Alle Zeiten sind in Pacific Time (PST) angegeben.

Voraussetzungen

Bevor Sie den Nutzungsexport von Compute Engine verwenden können:

  • Sie müssen bereits einen Bucket erstellt haben, um Nutzungsprotokolle zu speichern.

Exportieren der Nutzung einrichten

Wenn Sie die Funktion zum Exportieren der Nutzung das erste Mal aktivieren, wird der erste Bericht am nächsten Tag mit den Einzelheiten zur Nutzung am Vortag verschickt. Danach erhalten Sie die Berichte alle 24 Stunden.

Aktivieren Sie zum Einrichten des Nutzungsexportfeatures das Feature im gcloud compute-Tool. Wenn Sie dieses Feature aktivieren, müssen Sie zwei Attribute definieren:

  1. Den Cloud Storage-Bucket, in dem Ihre Berichte zugestellt werden sollen.

    Sie können einen beliebigen Cloud Storage-Bucket auswählen, dessen Inhaber Sie sind, einschließlich Buckets von verschiedenen Projekten. Dieser Bucket muss bereits existieren, bevor Sie mit dem Exportieren von Berichten beginnen können. Außerdem müssen Sie als Inhaber ein Zugriffsrecht auf den Bucket haben. Cloud Storage berechnet Gebühren für die Nutzung. Deshalb sollten Sie die Informationen in der Preisliste für Cloud Storage durchlesen, um zu sehen, welche Kosten Ihnen für diesen Dienst entstehen könnten.

    Jeder Nutzer, der Lesezugriff auf den Cloud Storage-Bucket hat, kann sich die Nutzungsberichte im Bucket ansehen. Jeder Nutzer, der Schreibzugriff auf den Bucket hat, kann vorhandene Dateien im Bucket erstellen, anzeigen und ändern. Weitere Informationen finden Sie im Abschnitt Zugriffskontrolle.

  2. Den Berichtspräfix für Ihre Dateien.

    Sie können das für Ihre Nutzungsberichte zu verwendende Berichtepräfix festlegen. Ihre Nutzungsberichte werden Dateinamen haben, die dieses Präfix enthalten. Wenn Sie z. B. "my-cool-project-report" als Berichtspräfix angeben, erhalten Sie einen Dateinamen, der dem Format my-cool-project-report_1234567890_20131230.csv ähnelt. Wenn Sie kein Berichtspräfix angeben, wird das Standardpräfix usage_gce verwendet.

Nachdem Sie sich für diese beiden Attribute entschieden haben, können Sie das Feature zum Exportieren der Nutzung folgendermaßen aktivieren:

Console

  1. Rufen Sie die Seite "Compute Engine-Einstellungen" auf.

    Zu den Compute Engine-Einstellungen

  2. Klicken Sie das Kästchen Nutzungsexport aktivieren an.

  3. Tragen Sie in den erforderlichen Feldern den Namen des Buckets ein. Geben Sie optional ein Berichtspräfix an, falls gewünscht. Wenn Sie das Berichtspräfix leer lassen, wird das Standardpräfix usage_gce verwendet. Alle an den Bucket gelieferten Nutzungsberichte werden mit diesem Präfix benannt.

  4. Klicken Sie auf Speichern.

gcloud

Verwenden Sie in gcloud compute den Befehl gcloud compute project-info set-usage-bucket, um dieses Feature zu aktivieren:

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

Dabei gilt:

  • [BUCKET_NAME] ist der Name eines vorhandenen Buckets, an den die Nutzungsberichte gesendet werden sollen. Muss im Format gs://<bucket-name> oder https://storage.googleapis.com/<bucket-name> vorliegen. Der Nutzer, der diesen Befehl ausführt, muss Inhaber des Buckets sein.
  • [PREFIX] ist das optionale Präfix für die Namen der Nutzungsberichte. Wenn keine Angabe erfolgt, wird das Standardpräfix usage_gce verwendet.

Python

Verwenden Sie die Methode set_usage_export_bucket() in der Sammlung Projects, um Nutzungsexporte zu aktivieren. Im folgenden Beispiel werden die Cloud-Clientbibliotheken für Python verwendet:

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")

Weitere Informationen finden Sie in der API-Referenzdokumentation zu projects.setUsageExportBucket.

Nutzungsexportberichte herunterladen

Sobald Sie anfangen, Nutzungsberichte in Ihrem Bucket zu erhalten, können Sie die Berichte wie andere Objekte aus Cloud Storage herunterladen. Weitere Informationen finden Sie unter Objekte herunterladen.

Unterstützte Messwerte

Tägliche Nutzungsberichte liefern Informationen über die Nutzung der folgenden Ressourcen:

  • Virtuelle Maschinen
  • Persistente Festplatten
  • Images
  • Snapshots
  • Statische IP-Adressen
  • Load-Balancer
  • Reservierungen

Jede Ressource wird mit den folgenden Messwerten beschrieben:

Name des Messwerts Eigenschaften des Messwerts
Datum des Berichts:
  • Messwerttyp: String
  • Beschreibung: Das Datum der Nutzung.
  • Beispiel: 2019-08-15
MeasurementId
  • Messwerttyp: String
  • Beschreibung: Die ID des Ressourcentyps, der gemessen wird.
    Beispiel: VmimageN2StandardCore_Uswest2 stellt einen n2-standard im Maschinentyp us-west2 dar.
  • Beispiel: com.google.cloud/services/compute‑engine/VmimageN2StandardCore_Uswest2
  • Beispiel: com.google.cloud/services/compute‑engine/VmimageN2StandardRam_Uswest2
Menge
  • Messwerttyp: Integer
  • Beschreibung: Die Menge der Nutzung für das angegebene Datum.
  • Beispiel: 86400
Einheit
  • Messwerttyp: String
  • Beschreibung: Der Einheitentyp wie Anzahl, Sekunden, Stunden und so weiter.
  • Beispiel: Sekunden
Ressourcen-URI
  • Messwerttyp: String
  • Beschreibung: Der URI der angegebenen Ressource
  • Beispiel: https://compute.googleapis.com/compute/v1/projects/<project‑id>/zones/<zone>/instances/<instance>
ResourceId
  • Messwerttyp: Integer
  • Beschreibung: Eine numerische ID, die die bestimmte Ressource identifiziert.
  • Beispiel: 16557630484925648021
Standort
  • Messwerttyp: String
  • Beschreibung: Der Standort der Ressource. Entweder der Name einer Zone oder Region oder GLOBAL für globale Ressourcen.
  • Beispiel: us-central1-a

Das folgende Beispiel zeigt einen Eintrag im Bericht:

Datum des Berichts: MeasurementId Menge Einheit Ressourcen-URI Ressourcen-ID Standort
02/13/2019 com.google.cloud/services/compute-engine/VmimageE2Standard_2 86400 Sekunden https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance 16557630484 us-central1-a

Zugriffskontrolle

Wenn Sie die Funktion zum Exportieren der Nutzung in einen Cloud Storage-Bucket aktivieren, fügt sich Compute Engine automatisch in den Bucket mit Schreibzugriff ein, um Nutzungsberichte liefern zu können. Solange Compute Engine Zugriff auf den Bucket hat und die Funktion zum Exportieren der Nutzung aktiviert ist, wird Compute Engine weiterhin Nutzungsberichte in den angegebenen Cloud Storage-Bucket exportieren.

Sie können erkennen, dass Compute Engine auf einen Bucket Zugriff hat, wenn die folgende ID der IAM-Richtlinie des Buckets hinzugefügt wurde:

cloud-cluster-analytics-export@google.com

Jeder Nutzer, der Inhaber des Projekts ist, hat vollen Zugriff auf den Cloud Storage-Bucket. Andere Nutzer, wie Schreiber und Leser, werden unterschiedliche Rechte für den Zugriff auf den Bucket haben. Weitere Informationen zu IAM für einen Bucket finden Sie unter IAM für Cloud Storage.

Wenn Sie die Funktion zum Exportieren der Nutzung deaktivieren, wird Compute Engine automatisch den Schreibzugriff von Compute Engine auf den Bucket entfernen. Wenn Sie die Berechtigungen für das Konto cloud-cluster-analytics-export@google.com ändern und dann die Funktion zum Exportieren der Nutzung deaktivieren, wird Compute Engine die Funktion zum Exportieren der Nutzung zwar deaktivieren, aber das Konto nicht aus der Zugriffsliste des Projekts entfernen. Sie können das Konto manuell entfernen, falls gewünscht.

Die Aktivierung von Nutzungsberichten prüfen

Durch Abrufen der Informationen über das Projekt können Sie die Projekteinstellungen für das Exportieren der Nutzung prüfen:

gcloud compute project-info describe

Prüfen Sie das Feld 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      |                                                    |
+-------------------------+----------------------------------------------------+

Nutzungsberichte deaktivieren

Wenn Sie Nutzungsberichte deaktivieren, entfernt Compute Engine automatisch den Schreibzugriff für Ihre Compute Engine im Cloud Storage-Bucket und stellt das Senden von neuen Berichten ein.

Console

  1. Rufen Sie die Seite "Compute Engine-Einstellungen" auf.

    Zu den Compute Engine-Einstellungen

  2. Deaktivieren Sie das Kästchen Nutzungsexport aktivieren, um den Nutzungsexport zu deaktivieren.

gcloud

Deaktivieren Sie in gcloud compute die Funktion Nutzungsexport. Dazu führen Sie den Befehl gcloud compute project-info set-usage-bucket mit dem Flag --no-bucket aus:

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

Python

Wenn Sie Nutzungsexporte deaktivieren möchten, verwenden Sie die Methode set_usage_export_bucket() in der Sammlung Projects, wobei usage_export_location_resource auf None gesetzt ist. Im folgenden Beispiel werden die Cloud-Clientbibliotheken für Python verwendet:

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")

Nächste Schritte