Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Exporte konfigurieren

Auf dieser Seite wird erläutert, wie Sie Traces mithilfe der Cloud Trace API und des gcloud-Befehlszeilentools exportieren. Sie müssen die Cloud SDK-Version 274.0.0 oder höher verwenden. Informationen zum Aktualisieren von Cloud SDK 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.

Terminologie

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

In den Beispielen des gcloud-Befehlszeilentools werden die folgenden Umgebungsvariablen verwendet:

  • SINK_ID: Der Name oder die ID der Senke. Beispiel: my-sink Sie müssen den vollständig qualifizierten Befehl nicht dem gcloud-Befehlszeilentool bereitstellen, da er 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] 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 mithilfe der Cloud Trace API oder des gcloud-Befehlszeilentools. 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 Autors 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 dem gcloud-Befehlszeilentool 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 dem gcloud-Befehlszeilentool 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 des gcloud-Befehlszeilentools 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 dem gcloud-Befehlszeilentool 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 dem gcloud-Befehlszeilentool 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 die Senke zu aktualisieren, deren ID in SINK_ID mit dem gcloud-Befehlszeilentool 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 des gcloud-Befehlszeilentools 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 das gcloud-Befehlszeilentool 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 Befehl des gcloud-Befehlszeilentools 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 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 das gcloud-Befehlszeilentool 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. Mit dem Befehl zum Erstellen einer Senke wird der Befehl des gcloud-Befehlszeilentools zurückgegeben, 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@gcp-sa-computescanning.iam.gserviceaccount.com
      role: roles/computescanning.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

Gehen Sie so vor, um die Messwerte für eine überwachte Ressource über den Metrics Explorer aufzurufen:

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

    Wenn Sie Cloud Monitoring noch nie verwendet haben, wird beim ersten Zugriff auf Monitoring in der Google Cloud Console automatisch ein Arbeitsbereich erstellt und Ihr Projekt mit diesem Arbeitsbereich verknüpft. Wenn Ihr Projekt nicht mit einem Arbeitsbereich verknüpft ist, wird ein Dialogfeld angezeigt, in dem Sie entweder einen Arbeitsbereich erstellen oder dieses Projekt zu einem vorhandenen Arbeitsbereich hinzufügen können. Wir empfehlen, einen Arbeitsbereich zu erstellen. Klicken Sie nach der Auswahl auf Hinzufügen.

  2. Klicken Sie im Navigationsbereich von Monitoring auf Metrics Explorer.
  3. Prüfen Sie, ob der Tab Messwert ausgewählt ist.
  4. Treffen Sie im Feld Ressourcentyp und Messwert finden Ihre Auswahl über das Menü oder geben Sie den Namen für die Ressource und den Messwert ein. Verwenden Sie die folgenden Informationen, um die Felder auszufüllen:
    1. Geben Sie Cloud Trace als Ressourcentyp ein.
    2. Wählen Sie für den Messwert Nach BigQuery exportierte Spans aus.
  5. Mit den Menüs Filter, Gruppieren nach und Aggregator können Sie die Darstellung der Daten ändern. Verwenden Sie für dieses Diagramm die folgenden Einstellungen:
    1. Lassen Sie das Feld Filter leer. Wenn Sie diese Option auswählen, werden im Diagramm alle Statusdaten angezeigt.
    2. Wählen Sie status für das Feld Gruppieren Nach aus. 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.
    3. Behalten Sie für die Felder Aggregator die Standardwerte bei.
    Weitere Informationen finden Sie unter Messwerte auswählen.

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

Benachrichtigungsrichtlinie erstellen

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

Bereich Ziel
Feld

Wert
Resource type Cloud Trace
Metric Spans Exported to BigQuery
Filter status != ok
Group by status
Aggregator sum
Period 1 m
Advanced Aggregation Aligner: rate
Konfigurationsbereich
– Feld

Wert
Condition triggers if Any time series violates
Condition is above
Threshold 0
For 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:

Authentication

  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 das Cloud SDK:

    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]

wobei

  • [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.