Exporte konfigurieren

Auf dieser Seite wird erläutert, wie Sie Traces mit der Cloud Trace API und der Google Cloud CLI exportieren. Sie müssen Version 274.0.0 oder höher der Google Cloud CLI 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 Beispielen der Google Cloud CLI 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 an die Google Cloud CLI übergeben, da er Ihr Google Cloud-Projekt ermitteln 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 die Google 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 Nummer des Google Cloud-Projekts 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 Autorenidentität aus 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 mithilfe der Google Cloud Console finden Sie unter Zugriff auf ein Dataset steuern.

      • Verwenden Sie zum Hinzufügen der Berechtigungen über die Google Cloud CLI den Befehl add-iam-policy-binding und geben Sie die Google Cloud-Projekt-ID sowie die Identität des Autors 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 im Standardprojekt definierten Senken über die 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 über die 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 mithilfe 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, mithilfe 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

Führen Sie den Befehl traceSinks.patch aus, um eine Senke in Ihrem Google Cloud-Projekt 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 mit der Google Cloud CLI die Senke zu aktualisieren, deren ID in SINK_ID 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 beschrieben, wie Sie mit den Google Cloud CLI-Befehlen eine Senke 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 verschiedenen Google 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 für die Google Cloud CLI mindestens Version 274.0.0 installiert 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 vom Google Cloud CLI-Befehl verwendeten Umgebungsvariablen fest:

    $ 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 verschiedenen Google 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 obigen 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:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Beispielantwort:

    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  4. Erteilen Sie der Schreibidentität der Senke die Berechtigung bigquery.dataEditor. Der Befehl zum Erstellen einer Senke gibt einen Google Cloud CLI-Befehl zurück, mit dem Sie die Berechtigung aktualisieren können.

    Damit dieser Befehl erfolgreich ist, gehen Sie so vor:

    • Gewährleisten Sie, dass Sie die Berechtigung zum Ändern der Zielberechtigungen haben.
    • Ersetzen Sie bigquery-project durch Ihre Projekt-ID.
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Beachten Sie, dass der erste Eintrag in dieser Beispielantwort die Autorenidentität der Senke ist:

    Updated IAM policy for project [a-sample-project].
    bindings:
    - members:
      - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    - members:
      - user:user@example.com
      role: roles/cloudtrace.admin
    - members:
      - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
      role: roles/container.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
      role: roles/containeranalysis.ServiceAgent
    - members:
      - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
      role: roles/containerregistry.ServiceAgent
    - members:
      - serviceAccount:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      role: roles/editor
    - members:
      - user:user@example.com
      role: roles/owner
    etag: BwWbqGVnShQ=
    version: 1

Senkenziel ändern

In diesem Beispiel wird das Ziel von dataset_1 in dataset_other geändert:

  1. Aktualisieren Sie die Umgebungsvariablen DATA_SET_NAME und DESTINATION:

    $ DATA_SET_NAME=dataset_other
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Aktualisieren Sie den Wert von DESTINATION, nachdem Sie DATA_SET_NAME oder PROJECT_NUMBER geändert haben.

  2. Senkenziel ändern:

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

    Eine Beispielausgabe ist:

    Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Führen Sie den Befehl "describe" aus, um die Details der Senke anzusehen:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Wenn Sie das Ziel einer Senke aktualisieren, ändern Sie nicht die Identität des Senkenautors. Daher müssen Sie die Berechtigungen für die Senke nicht aktualisieren.

Senke löschen

Führen Sie den folgenden Befehl aus, um eine Senke zu löschen:

$ gcloud alpha trace sinks delete ${SINK_ID}

Beispielausgabe:

Really delete sink [a-sample-sink]?

Do you want to continue (y/N)?  y

Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].

Sie können das Ergebnis prüfen, indem Sie den Befehl list ausführen:

$ gcloud alpha trace sinks list
Listed 0 items.

Validation

Sie können den Cloud Monitoring-Messwert exported_span_count als Grundlage für ein Diagramm verwenden, das die Fehler beim Export von Trace-Daten nach BigQuery anzeigt. Sie können auch eine Benachrichtigungsrichtlinie erstellen, damit Sie benachrichtigt werden, wenn Exportfehler auftreten.

Diagramm erstellen

So rufen Sie die Messwerte für eine überwachte Ressource mit dem Metrics Explorer auf:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Metrics Explorer aus:

    Zum Metrics Explorer

  2. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie Spans Exported to BigQuery in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option Cloud Trace aus.
    2. Wählen Sie im Menü Aktive Messwertkategorien die Option Bigquery_explort aus.
    3. Wählen Sie im Menü Aktive Messwerte die Option In BigQuery exportierte Spans aus.
    4. Klicken Sie auf Anwenden.
  3. Konfigurieren Sie, wie die Daten angezeigt werden.
    1. Lassen Sie das Element Filter leer. Wenn Sie diese Option auswählen, werden im Diagramm alle Statusdaten angezeigt.
    2. Legen Sie im Element Aggregation das erste Menü auf Mean und das zweite Menü auf status fest.

      Diese Auswahl führt zu einer einzelnen Zeitachse für jeden eindeutigen Statuswert. In der folgenden Tabelle sind die möglichen Statuswerte aufgeführt:

      Wert StatusBedeutung und Korrekturmaßnahmen
      ok Die Datenübertragung war erfolgreich.
      bigquery_permission_denied Der Datenexport an das Ziel ist fehlgeschlagen. Der Export kann aus einem der folgenden Gründe fehlschlagen:
      • Das Dienstkonto in der Trace-Senke hat keine Berechtigung zum Schreiben in das Ziel-Dataset. Siehe Berechtigung verweigert.
      • Das Ziel des Datasets in der Senke ist nicht vorhanden. Siehe Ungültiges Ziel.
      • Interne BigQuery-Fehler. Dies ist ein unerwarteter und vorübergehender Fehler.
      bigquery_quota_exceeded Das BigQuery-Streamingkontingent hat das BigQuery-Projekt überschritten. Siehe Kontingent aufgebraucht.
      invalid_span
      internal_errors

      invalid_destination
      Unbekannter Fehler, der den Export von Daten nach BigQuery verhindert. Wenden Sie sich an den technischen Support oder stellen Sie eine Frage auf Stack Overflow, um dieses Problem zu beheben. Weitere Informationen finden Sie unter Support.

    Weitere Informationen zum Konfigurieren eines Diagramms finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.

Wenn die Trace-Senke Daten erfolgreich exportiert, zeigt das mit den vorherigen Einstellungen erstellte Diagramm eine einzelne Zeitachse mit dem Statuswert ok an. Wenn während des Exports Fehler auftreten, werden im Diagramm zusätzliche Zeitachsen angezeigt.

Benachrichtigungsrichtlinie erstellen

Verwenden Sie die folgenden Einstellungen, um eine Benachrichtigungsrichtlinie zu erstellen, die ausgelöst wird, wenn beim Exportieren von Cloud Trace-Daten nach BigQuery Fehler auftreten.

Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Cloud Trace aus.
Wählen Sie im Menü Messwertkategorien die Option Bigquery_export aus.
Wählen Sie im Menü Messwerte die Option Nach BigQuert exportierte Spans aus.
Filter status != ok
Über Zeitreihen
Zeitreihen gruppieren nach
status
Über Zeitreihen hinweg
Zeitreihenaggregation
sum
Rollierendes Zeitfenster 1 m
Funktion für rollierendes Zeitfenster rate
Benachrichtigungstrigger konfigurieren
Feld

Wert
Bedingungstyp Threshold
Benachrichtigungstrigger Any time series violates
Grenzwertposition Above threshold
Grenzwert 0
Zeitfenster noch einmal testen 1 minute

cURL verwenden

In diesem Abschnitt werden die Konventionen und die Einrichtung beschrieben, die beim Aufrufen der Cloud Trace API mit dem curl-Tool verwendet werden:

Authentifizierung

  1. Erstellen Sie eine Umgebungsvariable für Ihre Google Cloud-Projekt-ID:

    PROJECT_ID=my-project
    
  2. Erstellen Sie eine Umgebungsvariable für Ihre Google Cloud-Projektnummer:

    PROJECT_NUMBER=12345
    
  3. Authentifizieren Sie die Google Cloud CLI:

    gcloud auth login
    
  4. Legen Sie die standardmäßige Google Cloud-Projekt-ID fest:

    gcloud config set project ${PROJECT_ID}
    
  5. Erstellen Sie ein Autorisierungstoken und speichern Sie es in einer Umgebungsvariablen:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Prüfen Sie das Zugriffstoken:

    echo ${ACCESS_TOKEN}
    

    Die Antwort auf den Befehl sollte ein langer String sein. Auf einem System beginnt die Antwort beispielsweise so:

    y29.GluiBjo....
    

curl aufrufen

Jeder curl-Befehl enthält eine Reihe von Argumenten, gefolgt von der URL einer Cloud Trace API-Ressource. Zu den häufig verwendeten Argumenten gehören Werte, die durch die Umgebungsvariablen PROJECT_ID und ACCESS_TOKEN angegeben werden.

Jeder curl-Aufruf hat die folgende allgemeine Form:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]

Dabei gilt:

  • [OTHER_ARGS] (Optional): Lassen Sie dieses Feld weg, wenn Sie eine GET-Anfrage stellen. Bei anderen HTTP-Anfragen ersetzen Sie diesen Platzhalter durch den Anfragetyp und alle weiteren Daten, die zur Erfüllung der Anfrage erforderlich sind.
  • [API_VERSION]: Geben Sie die Version der API an.
  • [RESOURCE]: Geben Sie den Namen der Cloud Trace API-Ressource an.

Führen Sie beispielsweise folgenden Befehl aus, um die letzten 1.000 Traces in Ihrem Projekt aufzulisten:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces

Fehlerbehebung

Fehlermeldung "Ungültiges Argument" für Dataset

Die folgende Fehlermeldung gibt an, dass der Dataset-Name ungültig ist:

ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
    bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.

Der Fehler wird vom Ziel verursacht, einschließlich der Google Cloud-Projekt-ID a-sample-project als Qualifizierer für den Dataset-Namen.

Zum Beheben dieses Fehlers, ersetzen Sie a-sample-project:dataset_1 durch dataset_1 und geben dann den Befehl "create" aus.

Beachten Sie, dass Sie Ihre Datasets mit dem Befehl bq ls auflisten können.

Es werden keine Trace-Daten empfangen

Es gibt mehrere Gründe, warum Sie in BigQuery keine Trace-Daten empfangen können.

Ungültiges Ziel

Prüfen Sie den Dataset-Namen und die Projektnummer.

  • Prüfen Sie den Namen des Datasets. Zum Auflisten der Datasets in Ihrem aktuellen Projekt führen Sie bq ls aus.

    Wenn Sie sich für die Verwendung von Umgebungsvariablen entschieden haben, prüfen Sie mit einem echo-Befehl, ob der Wert der einzelnen Variablen korrekt ist. Prüfen Sie beispielsweise, ob Ihr Ziel korrekt ist:

    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Da DESTINATION vom Wert von PROJECT_NUMBER und DATA_SET_NAME abhängt, müssen diese beiden Variablen zuerst festgelegt werden. Wenn Sie eine dieser beiden Variablen ändern, müssen Sie auch den in DESTINATION gespeicherten Wert aktualisieren.

  • Führen Sie den folgenden Befehl aus, um die aktuelle Projektnummer zu ermitteln:

    gcloud projects list --filter="${PROJECT_ID}"
    

    Mit dem folgenden Befehl können Sie PROJECT_NUMBER programmatisch festlegen:

    $ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
    

Ungültige Berechtigungen

Prüfen Sie, ob dem Dienstkonto die Rolle DataEditor für BigQuery zugewiesen wurde. Sie können die Berechtigungen mit dem folgenden Befehl prüfen:

$ gcloud projects get-iam-policy ${PROJECT_ID}

In der Antwort dieses Befehls werden alle IAM-Bindungen beschrieben. Das Ergebnis wird in diesem Fall so dargestellt: Beachten Sie, dass die Identität des Senkenautors die Rolle dataEditor hat:

bindings:
- members:
  - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
  role: roles/bigquery.dataEditor
- members:
  [Note, content truncated]

Kontingent erschöpft

Wenn Sie Daten empfangen und diese plötzlich stoppen oder Ihre Daten unvollständig sind, ist Ihr BigQuery-Streaming-Kontingent möglicherweise erschöpft. Wenn Sie Ihr Kontingent aufrufen möchten, gehen Sie zur Seite IAM & Verwaltung und wählen Sie Kontingente aus. Suchen Sie nach der BigQuery API. Es gibt zwei relevante Einträge: Streaming-Zeilen pro Minute und Ressource, Streaming-Byte pro Minute und Ressource.

Kontingente aufrufen

Nächste Schritte

Informationen zum BigQuery-Schema finden Sie unter Nach BigQuery exportieren.