Configurer les exportations

Cette page explique comment exporter des traces à l'aide de l'API Cloud Trace et la Google Cloud CLI. Vous devez utiliser la version 274.0.0 ou ultérieure de la Google Cloud CLI. Pour savoir comment mettre à jour la Google Cloud CLI, consultez gcloud components update.

Certains exemples de cette page ont été générés à l'aide de curl. Pour en savoir plus sur la configuration de cet outil, consultez la page Utiliser curl.

Pour obtenir un exemple illustrant l'utilisation des commandes Google Cloud CLI pour lister, créer, décrire, mettre à jour et supprimer un récepteur, consultez l'exemple de bout en bout.

Terminologie

Pour simplifier les exemples de cette page, des variables d'environnement ont été utilisées.

Les exemples de Google Cloud CLI utilisent les variables d'environnement suivantes:

  • SINK_ID : le nom ou l'identifiant du récepteur. Exemple : my-sink. Il n'est pas nécessaire de fournir la commande complète à la Google Cloud CLI, car elle peut déterminer votre projet Google Cloud.
  • DESTINATION : stocke le nom complet de la destination. Il doit s'agir d'un ensemble de données BigQuery. Par exemple, une destination valide est :

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

    DESTINATION_PROJECT_NUMBER est le numéro du projet Google Cloud de la destination et DATASET_ID l'identifiant de l'ensemble de données BigQuery.

Les exemples curl utilisent les variables d'environnement suivantes :

  • ACCESS_TOKEN : stocke le jeton d'autorisation. Pour en savoir plus, consultez la section Utiliser curl.
  • PROJECT_ID : stocke l'identifiant ou le numéro du projet Google Cloud.
  • PROJECT_NUMBER : stocke le numéro du projet Google Cloud.
  • SINK_ID : le nom ou l'identifiant du récepteur. Exemple : my-sink.
  • SINK_BODY : stocke la description d'une ressource TraceSink. La ressource TraceSink inclut un nom et la destination du récepteur. Le nom doit spécifier le numéro du projet Google Cloud.
  • DESTINATION : stocke le nom complet de la destination. Il doit s'agir d'un ensemble de données BigQuery.

Configurer la destination

Pour exporter des traces vers BigQuery, procédez comme suit :

  1. Créez l'ensemble de données de destination.

  2. Créez le récepteur à l'aide de l'API Cloud Trace ou de Google Cloud CLI. Pour en savoir plus, consultez Créer un récepteur.

  3. Attribuez au récepteur le rôle dataEditor pour votre ensemble de données BigQuery :

    1. Obtenez l'identité du rédacteur à partir du récepteur. Pour plus d'informations sur l'identité du rédacteur, consultez la section Propriétés et terminologie des récepteurs.

      L'identité du rédacteur pour un récepteur est incluse dans les données de réponse à la commande de création. Elle est également incluse dans les données de réponse de la commande list.

    2. Ajoutez l'identité du rédacteur du récepteur en tant que compte de service à votre ensemble de données BigQuery et attribuez-lui le rôle d'éditeur de données BigQuery.

      • Pour ajouter les autorisations à l'aide de la console Google Cloud, consultez la section Contrôler l'accès à un ensemble de données.

      • Pour ajouter les autorisations à l'aide de Google Cloud CLI, utilisez la commande add-iam-policy-binding et indiquez l'identifiant de votre projet Google Cloud et l'identité du rédacteur du récepteur :

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

        Dans la commande précédente, WRITER_IDENTITY est une variable d'environnement qui stocke l'identité du rédacteur du récepteur et DESTINATION_PROJECT_ID est l'identifiant du projet Google Cloud de l'ensemble de données BigQuery.

Répertorier les récepteurs

Pour répertorier tous les récepteurs dans votre projet Google Cloud, y compris leurs identités de rédacteur, appelez la méthode traceSinks.list.

gcloud

Pour répertorier les récepteurs définis avec le projet par défaut à l'aide de la Google Cloud CLI, exécutez la commande suivante :

gcloud alpha trace sinks list

Protocole

Pour répertorier les récepteurs à l'aide de curl, envoyez une requête GET à :

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

Par exemple, la requête suivante récupère tous les récepteurs :

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

Afficher les détails d'un récepteur spécifique

Pour afficher les détails d'un récepteur spécifique dans votre projet Google Cloud, appelez la méthode traceSinks.get.

gcloud

Afficher les détails du récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de la Google Cloud CLI, exécutez la commande suivante:

gcloud alpha trace sinks describe ${SINK_ID}

Protocole

Pour afficher les détails du récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de curl, envoyez une requête GET à :

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

Par exemple, la requête suivante récupère les détails du récepteur spécifié :

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

Créer un récepteur

Pour créer un récepteur dans votre projet Google Cloud, appelez la méthode traceSinks.create. La destination d'un récepteur doit être un ensemble de données BigQuery.

Cet ensemble de données doit exister avant la création du récepteur. Trace ne vérifie pas l'existence de la destination. Consultez la section Créer des ensembles de données pour en savoir plus sur la création d'ensembles de données BigQuery.

gcloud

Pour créer un récepteur à l'aide de la Google Cloud CLI, exécutez la commande suivante:

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

Protocole

Pour créer un récepteur à l'aide de curl, envoyez une requête POST à :

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

Par exemple, pour créer un récepteur nommé test_sink afin d'exporter les délais de trace vers test_dataset dans le projet avec ${PROJECT_NUMBER}, définissez la variable d'environnement SINK_BODY comme indiqué :

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

Pour créer le récepteur, exécutez la commande suivante :

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

La création d'un récepteur peut prendre plusieurs minutes avant que les délais de trace ne soient exportés vers la destination.

Supprimer un récepteur

Pour supprimer un récepteur qui se trouve dans votre projet Google Cloud, appelez la commande traceSinks.delete.

gcloud

Pour supprimer le récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de la Google Cloud CLI, exécutez la commande suivante :

gcloud alpha trace sinks delete ${SINK_ID}

Protocole

Pour supprimer le récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de curl, envoyez une requête DELETE à :

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

Par exemple, la requête suivante supprime un récepteur :

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

Mettre à jour un récepteur

Pour mettre à jour un récepteur qui se trouve dans votre projet Google Cloud, appelez la commande traceSinks.patch.

Cet ensemble de données doit exister avant la création du récepteur. Trace ne vérifie pas l'existence de la destination.

gcloud

Pour mettre à jour le récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de Google Cloud CLI, exécutez la commande suivante :

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

La variable d'environnement DESTINATION stocke la nouvelle destination sur un récepteur Google Cloud.

Protocole

Pour mettre à jour la destination du récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de curl, envoyez une requête PATCH à :

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

Par exemple, la requête suivante met à jour la destination d'un récepteur :

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

Pour obtenir un exemple de SINK_BODY, consultez l'exemple de création d'un récepteur.

Plusieurs minutes peuvent s'écouler après la mise à jour d'un récepteur avant que les délais de trace ne soient exportés vers la nouvelle destination.

Exemple de bout en bout

Cette section explique comment utiliser les commandes de la Google Cloud CLI pour répertorier, créer, décrire, mettre à jour et supprimer un récepteur. Les commandes ont été exécutées pour un projet portant l'identifiant de projet a-sample-project. Ce projet a été préconfiguré pour contenir deux ensembles de données BigQuery. Enfin, dans ces exemples, le récepteur et la destination se trouvent dans le même projet. Ce n'est pas une obligation. Le récepteur et la destination peuvent se trouver dans différents projets Google Cloud.

Étapes de configuration

  1. Vérifiez le paramètre de projet par défaut :

    $ gcloud config list
    

    Exemple de réponse :

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Vérifiez que la Google Cloud CLI est au minimum de la version 274.0.0:

    $ gcloud --version
    

    Exemple de réponse :

    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. Identifiez les ensembles de données disponibles dans le projet par défaut :

    $ bq ls
    

    Exemple de réponse :

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

    Notez que la première fois que vous utilisez les commandes bq, vous devrez peut-être sélectionner le projet.

Configurer les variables d'environnement

  1. Définissez les variables d'environnement utilisées par la commande Google Cloud CLI :

    $ 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}
    

    Dans cet exemple, la destination et le récepteur se trouvent dans le même projet. Ce n'est pas une obligation. Le récepteur et la destination peuvent se trouver dans différents projets Google Cloud.

  2. Vérifiez les paramètres :

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

Répertorier les récepteurs

Pour répertorier tous les récepteurs, exécutez la commande suivante :

$ gcloud alpha trace sinks list

Ce projet n'ayant pas de récepteur, la réponse est :

Listed 0 items.

Créer un récepteur

  1. Pour créer un récepteur, exécutez la commande suivante :

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

    Exemple de réponse :

    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
    

    Notez que le nom du compte de service inclut export-0000001cbe991a08-3434. Le nombre 0000001cbe991a08 est la représentation hexadécimale de PROJECT_NUMBER. La valeur 3434 est une valeur aléatoire.

    Avant d'exécuter la Google Cloud CLI dans la réponse précédente, vous devez remplacer bigquery-project par votre identifiant de projet.

  2. Vérifiez que le récepteur a bien été créé :

    $ gcloud alpha trace sinks list
    

    Exemple de réponse :

    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. Décrivez le récepteur en détail :

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Exemple de réponse :

    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. Accordez l'autorisation bigquery.dataEditor à l'identité de rédacteur du récepteur. La commande de création de récepteur renvoie une commande Google Cloud CLI que vous pouvez utiliser pour mettre à jour l'autorisation.

    Pour que cette commande fonctionne, procédez comme suit :

    • Vérifiez que vous disposez des autorisations nécessaires pour modifier les autorisations de destination.
    • Remplacez bigquery-project par l'identifiant de votre projet :
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Notez que la première entrée de cet exemple de réponse est l'identité de rédacteur du récepteur :

    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

Modifier la destination du récepteur

Dans cet exemple, la destination passe de dataset_1 à dataset_other :

  1. Mettez à jour les variables d'environnement DATA_SET_NAME et 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
    

    Veillez à actualiser la valeur de DESTINATION après avoir modifié DATA_SET_NAME ou PROJECT_NUMBER.

  2. Changez la destination du récepteur :

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

    Voici un exemple de sortie :

    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
    

    Exécutez la commande describe pour afficher les détails du récepteur :

    $ 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
    

    Lorsque vous mettez à jour la destination d'un récepteur, vous ne modifiez pas l'identité de rédacteur du récepteur et n'avez donc pas besoin de mettre à jour les autorisations du récepteur.

Supprimer un récepteur

Pour supprimer un récepteur, exécutez la commande suivante :

$ gcloud alpha trace sinks delete ${SINK_ID}

Exemple de sortie :

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].

Vous pouvez vérifier le résultat en exécutant la commande list :

$ gcloud alpha trace sinks list
Listed 0 items.

Validation

Vous pouvez utiliser la métrique Cloud Monitoring exported_span_count comme base d'un graphique qui affiche les erreurs lorsque les données Trace sont exportées vers BigQuery. Vous pouvez également créer une règle d'alerte pour vous avertir en cas d'erreurs d'exportation.

Créer un graphique

Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Explorateur de métriques :

    Accéder à l'explorateur de métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez Spans Exported to BigQuery dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Cloud Trace.
    2. Dans le menu Catégories de métriques actives, sélectionnez Bigquery_explort.
    3. Dans le menu Métriques actives, sélectionnez Délais exportés vers BigQuery.
    4. Cliquez sur Appliquer.
  3. Configurez le mode d'affichage des données.
    1. Laissez l'élément Filtre vide. Si vous choisissez cette option, le graphique affiche toutes les données d'état.
    2. Dans l'élément Agrégation, définissez le premier menu sur Moyenne et le second menu sur status.

      Ces sélections génèrent une seule série temporelle pour chaque valeur d'état unique. Le tableau suivant affiche les valeurs d'état possibles :

      Valeur ÉtatSignification et action corrective
      ok Le transfert de données a été effectué avec succès.
      bigquery_permission_denied Échec de l'exportation des données vers la destination. L'exportation peut échouer pour l'une des raisons suivantes :
      • Le compte de service du récepteur de trace n'est pas autorisé à écrire dans l'ensemble de données de destination. Voir Autorisation refusée.
      • La destination de l'ensemble de données dans le récepteur n'existe pas. Voir Destination incorrecte.
      • Erreurs internes BigQuery. Il s'agit d'une erreur temporaire et inattendue.
      bigquery_quota_exceeded Le projet BigQuery a dépassé son quota de streaming BigQuery. Voir Quota épuisé.
      invalid_span
      internal_errors

      invalid_destination
      Erreur inconnue empêchant l'exportation de données vers BigQuery. Pour résoudre ce problème, veuillez contacter l'assistance technique ou poser une question sur Stack Overflow. Pour en savoir plus, consultez la page Assistance.

    Pour plus d'informations sur la configuration d'un graphique, consultez la page Sélectionner des métriques lors de l'utilisation de l'explorateur de métriques.

Si votre récepteur de trace parvient à exporter des données, le graphique créé avec les paramètres précédents affiche une seule série temporelle avec la valeur d'état ok. Si des erreurs se produisent lors de l'exportation, des séries temporelles supplémentaires apparaissent dans le graphique.

Créer une règle d'alerte

Pour créer une règle d'alerte qui se déclenche en cas d'erreur l'exportation des données Cloud Trace vers BigQuery ; utilisez les paramètres suivants.

ChampNouvelle condition

Valeur
Ressource et métrique Dans le menu Ressources, sélectionnez Cloud Trace.
Dans le menu Catégories de métriques, sélectionnez BigQuery_export.
Dans le menu Métriques, sélectionnez Délais exportés vers BigQuery.
Filter status != ok
Dans toutes les séries temporelles
Regrouper les séries temporelles par
status
Dans toutes les séries temporelles
Agrégation de séries temporelles
sum
Fenêtre glissante 1 m
Fenêtrage glissant rate
Champ Configurer le déclencheur d'alerte

Valeur
Type de condition Threshold
Déclencheur d'alerte Any time series violates
Position du seuil Above threshold
Valeur du seuil 0
Fenêtre du nouveau test 1 minute

Utiliser curl

Cette section décrit les conventions et la configuration utilisées pour appeler l'API Cloud Trace à l'aide de l'outil curl :

Authentication

  1. Créez une variable d'environnement destinée à contenir l'identifiant de votre projet Google Cloud :

    PROJECT_ID=my-project
    
  2. Créez une variable d'environnement destinée à contenir le numéro de votre projet Google Cloud :

    PROJECT_NUMBER=12345
    
  3. Authentifiez Google Cloud CLI :

    gcloud auth login
    
  4. Définissez l'identifiant de projet Google Cloud par défaut :

    gcloud config set project ${PROJECT_ID}
    
  5. Créez un jeton d'autorisation et enregistrez-le dans une variable d'environnement :

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Vérifiez le jeton d'accès :

    echo ${ACCESS_TOKEN}
    

    La réponse à la commande doit être une longue chaîne de caractères. Par exemple, sur un système, la réponse commence par :

    y29.GluiBjo....
    

Appeler curl

Chaque commande curl inclut un ensemble d'arguments, suivi de l'URL d'une ressource d'API Cloud Trace. Les valeurs spécifiées par les variables d'environnement PROJECT_ID et ACCESS_TOKEN constituent des arguments courants.

Chaque appel curl se présente sous la forme générale suivante :

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

où :

  • [OTHER_ARGS] (Facultatif) : omettez ce champ si vous envoyez une requête GET. Pour les autres types de requêtes HTTP, remplacez cet espace réservé par le type de requête et toute donnée supplémentaire nécessaire pour répondre à la requête.
  • [API_VERSION] : spécifiez la version de l'API.
  • [RESOURCE] : spécifiez le nom de ressource de l'API Cloud Trace.

Par exemple, pour répertorier les 1 000 dernières traces de votre projet, exécutez la commande suivante :

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

Dépannage

Cette section contient des informations de dépannage qui peuvent vous aider à résoudre les échecs lors de la configuration d'une exportation.

Erreur d'argument incorrecte pour l'ensemble de données

Le message d'erreur suivant indique que le nom de l'ensemble de données n'est pas valide :

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.

L'erreur est due à la destination qui comprend l'identifiant du projet Google Cloud, a-sample-project, servant de qualificatif à l'ensemble de données.

Pour résoudre cette erreur, remplacez a-sample-project:dataset_1 par dataset_1, puis exécutez la commande create.

Notez que vous pouvez répertorier vos ensembles de données à l'aide de la commande bq ls.

Aucune donnée de trace n'est reçue

Plusieurs raisons peuvent expliquer pourquoi vous ne recevez pas de données de trace dans BigQuery.

Destination incorrecte

Vérifiez que le nom de l'ensemble de données et le numéro du projet sont corrects.

  • Vérifiez que le nom de l'ensemble de données est correct. Pour répertorier les ensembles de données de votre projet actuel, exécutez bq ls.

    Si vous avez choisi d'utiliser des variables d'environnement, vérifiez que la valeur de chaque variable est correcte en exécutant une commande "echo". Par exemple, vérifiez que votre destination est correcte :

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

    Comme DESTINATION dépend de la valeur de PROJECT_NUMBER et de DATA_SET_NAME, ces deux variables doivent être définies en premier. De plus, si vous modifiez l'une de ces deux variables, vous devez actualiser la valeur stockée dans DESTINATION.

  • Pour déterminer le nombre de projets en cours, exécutez la commande suivante :

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

    Vous pouvez définir le paramètre PROJECT_NUMBER de manière automatisée à l'aide de la commande suivante :

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

Autorisations non valides

Vérifiez que le compte de service a reçu le rôle DataEditor pour BigQuery. Vous pouvez vérifier les autorisations en exécutant la commande suivante :

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

La réponse de cette commande décrit toutes les liaisons IAM. Dans le cas présent, le résultat est le suivant (Notez que l'identité du rédacteur du récepteur a le rôle dataEditor) :

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

Quota épuisé

Si vous recevez des données et que celles-ci s'arrêtent soudainement ou sont incomplètes, vous avez peut-être épuisé votre quota de streaming BigQuery. Pour afficher votre quota, accédez à la page IAM et administration, puis sélectionnez Quotas. Recherchez l'API BigQuery. Deux entrées sont pertinentes : les flux de lignes par minute par ressource, et les flux d'octets par minute par ressource.

Accéder à la section "Quotas"

Étape suivante

Pour en savoir plus sur le schéma BigQuery, consultez Exporter vers BigQuery