Exporte konfigurieren

Auf dieser Seite wird erläutert, wie Sie Traces mithilfe der Cloud Trace API und der Google Cloud CLI exportieren. Sie müssen die Google Cloud CLI-Version 274.0.0 oder höher verwenden. Informationen zum Aktualisieren der Google Cloud CLI finden Sie unter gcloud components update .

Einige Proben auf dieser Seite wurden mit curl generiert. Informationen zum Konfigurieren dieses Tools finden Sie unter curl verwenden.

Ein Beispiel für die Verwendung der Google Cloud CLI-Befehle zum Auflisten, Erstellen, Beschreiben, Aktualisieren und Löschen einer Senke finden Sie unter End-to-End-Beispiel.

Terminologie

Um die Beispiele auf dieser Seite zu vereinfachen, wurden Umgebungsvariablen verwendet.

In den Google Cloud CLI-Beispielen werden die folgenden Umgebungsvariablen verwendet:

  • SINK_ID: Der Name oder die ID der Senke. Beispiel: my-sink Sie müssen den voll qualifizierten Befehl nicht der Google Cloud CLI bereitstellen, da sie Ihr Google Cloud -Projekt bestimmen kann.
  • DESTINATION: Speichert den vollständig qualifizierten Namen des Ziels. Dies muss ein BigQuery-Dataset sein. Ein gültiges Ziel ist beispielsweise:

    bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
    

    Dabei ist DESTINATION_PROJECT_NUMBER dieGoogle Cloud Projektnummer des Ziels und DATASET_ID die BigQuery-Dataset-ID.

In den curl-Beispielen werden die folgenden Umgebungsvariablen verwendet:

  • ACCESS_TOKEN: Speichert das Autorisierungstoken. Weitere Informationen finden Sie unter curl verwenden.
  • PROJECT_ID: Speichert die Google Cloud Projekt-ID oder -Projektnummer.
  • PROJECT_NUMBER: Speichert die Google Cloud Projektnummer.
  • SINK_ID: Der Name oder die ID der Senke. Beispiel: my-sink
  • SINK_BODY: Speichert die Beschreibung einer TraceSink-Ressource. Die TraceSink-Ressource enthält einen Namen und das Ziel der Senke. Der Name muss die Google Cloud -Projektnummer angeben.
  • DESTINATION: Speichert den vollständig qualifizierten Namen des Ziels. Dies muss ein BigQuery-Dataset sein.

Ziel konfigurieren

So exportieren Sie Traces in BigQuery:

  1. Erstellen Sie das Ziel-Dataset.

  2. Erstellen Sie die Senke mit der Cloud Trace API oder der Google Cloud CLI. Weitere Informationen finden Sie unter Senke erstellen.

  3. Weisen Sie der Senke die Rolle dataEditor für Ihr BigQuery-Dataset zu:

    1. Rufen Sie die Identität des Writers von der Senke ab. Informationen zur Identität des Autors finden Sie unter Senkenattribute und Terminologie.

      Die Autorenidentität für eine Senke ist in den Antwortdaten für den Befehl "create" enthalten. Sie ist auch in den Antwortdaten des Listenbefehls enthalten.

    2. Fügen Sie die Identität des Autors der Senke als Dienstkonto dem BigQuery-Dataset hinzu und weisen Sie die Rolle des BigQuery-Dateneditors zu.

      • Informationen zum Hinzufügen der Berechtigungen mit der Google Cloud Console finden Sie unter Zugriff auf ein Dataset steuern.

      • Um die Berechtigungen mit der Google Cloud CLI hinzuzufügen, verwenden Sie den Befehl add-iam-policy-binding und geben Ihre Google Cloud-Projekt-ID und die Autorenidentität der Senke an:

        gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \
          --member serviceAccount:${WRITER_IDENTITY} \
          --role roles/bigquery.dataEditor
        

        Im vorherigen Befehl ist WRITER_IDENTITY eine Umgebungsvariable, die die Identität des Autors der Senke speichert, und DESTINATION_PROJECT_ID die Google Cloud Projekt-ID des BigQuery-Datasets.

Senken auflisten

Rufen Sie die Methode traceSinks.list auf, um alle Senken in Ihrem Google Cloud Projekt einschließlich ihrer Autorenidentitäten aufzulisten.

gcloud

Führen Sie den folgenden Befehl aus, um die mit dem Standardprojekt definierten Senken mit der Google Cloud CLI aufzulisten:

gcloud alpha trace sinks list

Protokoll

Wenn Sie Senken mithilfe von curl auflisten möchten, senden Sie eine GET-Anfrage an:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Die folgende Anfrage ruft beispielsweise alle Senken ab:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Details einer bestimmten Senke anzeigen

Rufen Sie die Methode traceSinks.get auf, um die Details einer bestimmten Senke in Ihrem Google Cloud-Projekt anzuzeigen.

gcloud

Führen Sie den folgenden Befehl aus, um mithilfe der Google Cloud CLI die Details der Senke anzuzeigen, deren ID in SINK_ID gespeichert ist:

gcloud alpha trace sinks describe ${SINK_ID}

Protokoll

Wenn Sie die Details der Senke anzeigen möchten, deren Kennung mit curl in SINK_ID gespeichert wird, senden Sie eine GET-Anfrage an:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}

Die folgende Anfrage ruft beispielsweise die Details der angegebenen Senke ab:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Senke erstellen

Rufen Sie zum Erstellen einer Senke in Ihrem Google Cloud -Projekt die Methode traceSinks.create auf. Das Ziel einer Senke muss ein BigQuery-Dataset sein.

Dieses Dataset muss vorhanden sein, bevor Sie die Senke erstellen. Trace prüft nicht, ob das Ziel vorhanden ist. Informationen zum Erstellen von BigQuery-Datasets finden Sie unter Datasets erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um eine Senke mit der Google Cloud CLI zu erstellen:

gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}

Protokoll

Um eine Senke mit curl zu erstellen, senden Sie eine POST-Anfrage an:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Wenn Sie beispielsweise eine Senke mit dem Namen test_sink erstellen möchten, um Trace-Spans nach test_dataset im Projekt mit ${PROJECT_NUMBER} zu exportieren, definieren Sie die Umgebungsvariable SINK_BODY so:

SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'

Führen Sie den folgenden Befehl aus, um die Senke zu erstellen:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Nach dem Erstellen einer Senke kann es einige Minuten dauern, bis Trace-Spans an das Ziel exportiert werden.

Senke löschen

Rufen Sie den Befehl traceSinks.delete auf, um eine Senke in Ihrem Google Cloud -Projekt zu löschen.

gcloud

Führen Sie den folgenden Befehl aus, um die Senke, deren ID in SINK_ID gespeichert ist, mit der Google Cloud CLI zu löschen:

gcloud alpha trace sinks delete ${SINK_ID}

Protokoll

Wenn Sie die Senke löschen möchten, deren ID in SINK_ID mit curl gespeichert ist, senden Sie eine DELETE-Anfrage an:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Mit der folgenden Anfrage wird beispielsweise eine Senke gelöscht:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Senke aktualisieren

Rufen Sie den Befehl traceSinks.patch auf, um eine Senke im Projekt Google Cloud zu aktualisieren.

Dieses Dataset muss vorhanden sein, bevor Sie die Senke erstellen. Trace prüft nicht, ob das Ziel vorhanden ist.

gcloud

Führen Sie den folgenden Befehl aus, um die Senke zu aktualisieren, deren ID in SINK_ID mit der Google Cloud CLI gespeichert ist:

gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}

Die Umgebungsvariable DESTINATION speichert das neue Ziel für die Senke.

Protokoll

Um das Ziel der Senke zu aktualisieren, deren ID in SINK_ID mit curl gespeichert ist, senden Sie eine PATCH-Anfrage an:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Mit der folgenden Anfrage wird beispielsweise das Ziel einer Senke aktualisiert:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

Das Beispiel SINK_BODY zeigt, wie Sie eine Senke erstellen.

Nach dem Aktualisieren einer Senke kann es einige Minuten dauern, bis Trace-Spans an das neue Ziel exportiert werden.

End-to-End-Beispiel

In diesem Abschnitt wird gezeigt, wie Sie eine Senke mit den Befehlen der Google Cloud CLI auflisten, erstellen, beschreiben, aktualisieren und löschen. Die Befehle wurden für ein Projekt mit der Projekt-ID a-sample-project ausgeführt. Dieses Projekt wurde vorkonfiguriert, sodass zwei BigQuery-Datasets enthalten. In diesen Beispielen befinden sich schließlich die Senke und das Ziel im selben Projekt. Dies ist nicht zwingend erforderlich. Die Senke und das Ziel können sich in verschiedenenGoogle Cloud -Projekten befinden.

Konfigurationsschritte

  1. Prüfen Sie die Standardprojekteinstellung:

    $ gcloud config list
    

    Beispielantwort:

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Prüfen Sie, ob die Google Cloud CLI mindestens 274.0.0 ist:

    $ gcloud --version
    

    Beispielantwort:

    Google Cloud SDK 275.0.0
    alpha 2020.01.03
    beta 2020.01.03
    bq 2.0.51
    core 2020.01.03
    gsutil 4.46
    kubectl 2020.01.03
    
  3. Ermitteln Sie die verfügbaren Datasets im Standardprojekt:

    $ bq ls
    

    Beispielantwort:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    Beachten Sie, dass Sie bei der ersten Verwendung von bq-Befehlen möglicherweise das Projekt auswählen müssen.

Umgebungsvariablen einrichten

  1. Legen Sie die Umgebungsvariablen fest, die vom Google Cloud CLI-Befehl verwendet werden:

    $ PROJECT_ID=a-sample-project
    $ PROJECT_NUMBER=123456789000
    $ SINK_ID=a-sample-sink
    $ DATA_SET_NAME=dataset_1
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    

    In diesem Beispiel befinden sich das Ziel und die Senke im selben Projekt. Dies ist nicht zwingend erforderlich. Die Senke und das Ziel können sich in verschiedenenGoogle Cloud -Projekten befinden.

  2. Prüfen Sie die Einstellungen:

    $ echo $SINK_ID
    a-sample-sink
    $ echo $DATA_SET_NAME
    dataset_1
    $ echo $DESTINATION
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    

Senken auflisten

Führen Sie den folgenden Befehl aus, um alle Senken aufzulisten:

$ gcloud alpha trace sinks list

Da dieses Projekt keine Senken enthält, lautet die Antwort:

Listed 0 items.

Senke erstellen

  1. Führen Sie den folgenden Befehl aus, um eine Senke zu erstellen:

    $ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
    

    Beispielantwort:

    You can give permission to the service account by running the following command.
    gcloud projects add-iam-policy-binding bigquery-project \
    --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \
    --role roles/bigquery.dataEditor
    

    Der Name des Dienstkontos enthält export-0000001cbe991a08-3434. Die Zahl 0000001cpe991a08 ist die hexadezimale Darstellung von PROJECT_NUMBER. Der Wert 3434 ist ein zufälliger Wert.

    Bevor Sie die Google Cloud CLI in der vorherigen Antwort ausführen, müssen Sie bigquery-project durch Ihre Projekt-ID ersetzen.

  2. Prüfen Sie, ob die Senke erstellt wurde:

    $ gcloud alpha trace sinks list
    

    Beispielantwort:

    NAME           DESTINATION                                                       WRITER_IDENTITY
    a-sample-sink  bigquery.googleapis.com/projects/123456789000/datasets/dataset_1  export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  3. Beschreiben Sie die Senke im Detail:

    $