Configurer des exportations

Cette page explique comment exporter des traces à l'aide de l'API Cloud Trace et de l'outil de ligne de commande gcloud. Vous devez utiliser la version 274.0.0 ou ultérieure du SDK Cloud. Pour en savoir plus sur la mise à jour du SDK Cloud, consultez la page 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.

Terminologie

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

Les exemples d'outil de ligne de commande gcloud 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 à l'outil de ligne de commande gcloud, 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 l'outil de ligne de commande gcloud. Pour en savoir plus, consultez la section Créer un récepteur.

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

    1. Obtenez l'identifiant 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 Google Cloud Console, consultez la section Contrôler l'accès aux ensembles de données.

      • Pour ajouter les autorisations à l'aide de l'outil de ligne de commande gcloud, 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.

Protocole

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

https://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Commande gcloud

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

gcloud alpha trace sinks list

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.

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://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Commande gcloud

Pour afficher les détails du récepteur dont l'identifiant est stocké dans SINK_ID à l'aide de l'outil de ligne de commande gcloud, exécutez la commande suivante :

gcloud alpha trace sinks describe ${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.

Protocole

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

https://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Commande gcloud

Pour créer un récepteur à l'aide de l'outil de ligne de commande gcloud, exécutez la commande suivante :

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

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.

Protocole

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

https://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Commande gcloud

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

gcloud alpha trace sinks delete ${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.

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://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.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.

Commande gcloud

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

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

La variable d'environnement DESTINATION stocke la nouvelle destination du 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.

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

    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 toutes les données supplémentaires nécessaires pour satisfaire 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

Exemple

Cette section illustre l'utilisation des commandes de l'outil de ligne de commande gcloud 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 l'outil de ligne de commande gcloud est au moins 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 de l'outil de ligne de commande gcloud :

    $ 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 l'outil de ligne de commande gcloud dans la réponse ci-dessus, 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 d'outil de ligne de commande gcloud 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@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:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      - serviceAccount:service-123456789000@containerregistry.iam.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 Google Cloud Console, accédez à Surveillance ou utilisez le bouton suivant :
    Accéder à Surveillance
  2. Dans le volet de navigation "Surveillance", cliquez sur  Explorateur de métriques.
  3. Assurez-vous que l'onglet Métrique est sélectionné.
  4. Cliquez dans la zone intitulée Rechercher un type de ressource et une métrique, puis sélectionnez l'élément dans le menu ou saisissez le nom de la ressource et de la métrique. Remplissez les champs de cette zone de texte à l'aide des informations suivantes :
    1. Saisissez Cloud Trace pour le type de ressource.
    2. Sélectionnez Délais exportés vers BigQuery pour la métrique.
  5. Utilisez les menus Filtre, Grouper par et Agrégation pour modifier le mode d'affichage des données. Pour ce graphique, utilisez les paramètres suivants :
    1. Laissez le champ Filtre vide. Si vous choisissez cette option, le graphique affiche toutes les données d'état.
    2. Sélectionnez status pour le champ Grouper par. Cette sélection génère 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.
    3. Conservez les valeurs par défaut des champs Agrégateur.
    Pour plus d'informations, consultez la page Sélectionner des 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'erreurs lors de l'exportation des données Cloud Trace vers BigQuery, utilisez les paramètres suivants :

Champ du
volet Cible

Valeur
Resource type Cloud Trace
Metric Spans Exported to BigQuery
Filter status != ok
Group by status
Aggregator sum
Advanced Aggregation Aligner : rate
Alignment Period : 1 m
Champ du
volet Conditions

Valeur
Condition triggers if Any time series violates
Condition is above
Threshold 0
For 1 minute

Dépannage

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 la page Exporter vers BigQuery.