Résoudre les erreurs de traçage distribué

Ce document explique comment diagnostiquer et résoudre les problèmes liés au traçage distribué lorsque vous utilisez Cloud Trace et des règles de télémétrie avec Secure Web Proxy.

Les traces n'apparaissent pas dans Trace

Si les spans de trace générés par Secure Web Proxy n'apparaissent pas dans l'explorateur de traces, vérifiez les points suivants :

  1. Vérifiez que l'API Cloud Trace est activée : assurez-vous que l'API Trace (cloudtrace.googleapis.com) est activée dans le projetGoogle Cloud qui héberge votre passerelle Secure Web Proxy.

    <pre class="devsite-click-to-copy">
    gcloud services enable cloudtrace.googleapis.com
    </pre>
    
  2. Vérifiez que la règle de télémétrie existe et qu'elle est active : utilisez la commande gcloud beta network-services telemetry-policies describe pour vérifier que votre règle de télémétrie existe dans la bonne région et qu'elle fait référence à la passerelle Secure Web Proxy appropriée :

    gcloud beta network-services telemetry-policies describe POLICY_NAME \
        --location=REGION
    

    Remplacez les éléments suivants :

    • POLICY_NAME : nom de votre stratégie de télémétrie, tel que my-swp-tracing-policy
    • REGION : région dans laquelle votre stratégie de télémétrie est déployée, par exemple us-central1
  3. Vérifiez le taux d'échantillonnage : si la valeur samplingRate de votre règle est faible (par exemple, 0.01 pour 1% ou 0.001 pour 0,1%), il est possible que les demandes de tests manuels individuelles ne soient pas échantillonnées. Pour confirmer que le traçage fonctionne, mettez temporairement à jour votre règle pour utiliser un échantillonnage à 100 % (samplingRate: 1.00), puis restaurez votre taux de production.

  4. Validez l'URI de la ressource de passerelle cible : vérifiez que le champ telemetryTarget.resources de la règle de télémétrie spécifie l'URL exacte et complète de la ressource ou le nom abrégé de la passerelle Secure Web Proxy.

    //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • REGION : région où votre passerelle Secure Web Proxy est déployée, par exemple us-central1
    • GATEWAY_NAME : nom de votre instance de passerelle Secure Web Proxy

    Toute incohérence dans l'ID du projet, la région ou le nom de la passerelle empêche le proxy de recevoir la configuration des règles.

  5. Vérifiez les autorisations IAM (Identity and Access Management) :

    • Assurez-vous d'avoir attribué à votre compte utilisateur ou à votre compte de service le rôle Utilisateur Cloud Trace (roles/cloudtrace.user) pour afficher les spans dans la console Google Cloud .
    • Assurez-vous d'avoir attribué le rôle d'agent Cloud Trace (roles/cloudtrace.agent) aux comptes de service suivants :
      • service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
      • service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com
      • Comptes de service des machines virtuelles (VM) clientes, si les applications clientes génèrent ou propagent des spans

Spans enfants manquants ou graphiques de trace défectueux

Si les spans de proxy Secure Web Proxy apparaissent comme des traces racines indépendantes ou déconnectées au lieu de spans enfants de vos requêtes d'application, procédez comme suit :

  1. Activer l'échantillonnage basé sur le parent : dans votre fichier YAML de stratégie de télémétrie, vérifiez que parentBasedSampling.enabled est défini sur true.

    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    

    Lorsque l'échantillonnage basé sur le parent est désactivé, Secure Web Proxy peut supprimer les traces échantillonnées en amont si elles ne correspondent pas à la valeur samplingRate locale.

  2. Vérifiez l'instrumentation OpenTelemetry : assurez-vous que votre application utilise un SDK OpenTelemetry dont la propagation du contexte de traçage distribué est activée. Pour en savoir plus, consultez la documentation sur le propagateur TraceContext OpenTelemetry.

Volume d'ingestion de traces anormalement élevé

Si vous constatez un volume ou des coûts d'ingestion de traces plus élevés que prévu dans Trace, procédez comme suit :

  1. Réduisez le taux d'échantillonnage de référence : dans les environnements de production à fort trafic, définissez samplingRate sur une fraction plus petite, par exemple 0.01 (1%) ou 0.001 (0,1%).
  2. Utilisez l'échantillonnage basé sur le parent : maintenez la référence de passerelle samplingRate à un niveau bas et activez parentBasedSampling. Cette combinaison permet de s'assurer que le proxy n'échantillonne que les requêtes spécifiquement sélectionnées par les applications en amont.
  3. Supprimez les règles de débogage temporaires : si vous aviez appliqué un échantillonnage à 100 % (samplingRate: 1.00) lors du dépannage, supprimez la règle ou rétablissez votre configuration précédente une fois le processus de débogage terminé.

Étapes suivantes