Inspecteur de contexte de trace

Collez une valeur traceparent ou un bloc d’en-têtes pour examiner les identifiants et l’échantillonnage. Générez un contexte enfant ou racine pour déboguer la propagation.

Fonctionne localement dans votre navigateur
Tout dans cet outil est traité dans ce navigateur. KivTools ne télécharge pas, ne stocke pas et n’appelle aucune API tierce avec votre entrée.
En-têtes de traceCollez un bloc d'en-tête ou une valeur traceparent.

Les en-têtes de suivi et de bagages peuvent exposer le contexte du service ou du client. Vérifiez les valeurs avant de les copier dans les tickets.

Entrées tracestate
Aucune entrée tracestate pour le moment.
Entrées baggage
Aucune entrée baggage pour le moment.

Comment inspecter un contexte de trace

Collez une valeur traceparent ou un bloc d’en-têtes : la page lit le contexte de trace W3C qu’il contient — l’identifiant de trace, l’identifiant du span parent, le flag d’échantillonnage, chaque membre tracestate et chaque entrée baggage. Les valeurs sont vérifiées par rapport aux règles de format des spécifications W3C Trace Context et Baggage, pas par rapport à un service en fonctionnement.

Le même panneau réécrit les en-têtes de propagation. Générer un contexte enfant conserve l’identifiant de trace et émet un nouvel identifiant de span parent ; Générer un contexte racine démarre une nouvelle trace ; les deux conservent les lignes tracestate et baggage d’origine. Tout s’exécute dans le navigateur — les en-têtes collés ne sont pas téléversés — et le bloc généré est prêt pour curl, un journal ou un rapport de bug.

  1. Collez un bloc d’en-têtes (traceparent, tracestate, baggage) ou une valeur traceparent seule, puis cliquez sur Inspecter le contexte ; Charger un exemple remplit un échantillon si vous voulez voir la forme de la sortie.
  2. Lisez la vue d’ensemble : version, identifiant de trace, identifiant du span parent, état d’échantillonnage et nombre d’entrées tracestate et baggage, suivis de la liste des constats.
  3. Cliquez sur Générer un contexte enfant pour garder l’identifiant de trace avec un nouvel identifiant de span parent, ou sur Générer un contexte racine pour démarrer une nouvelle trace ; le bloc d’en-têtes sortants apparaît en dessous.
  4. Utilisez Copier pour le bloc généré, puis Effacer pour réinitialiser l’entrée, la vue d’ensemble et les deux tableaux.

Ce que l’inspecteur vérifie, champ par champ

La vérification traceparent, règle par règle

Un traceparent comporte quatre champs séparés par des tirets : une version hexadécimale de deux chiffres en minuscules, un identifiant de trace de 32 caractères hex, un identifiant de span parent de 16 caractères hex et un champ de flags de deux caractères hex. La version ff est réservée et refusée ; la version 00 doit comporter exactement quatre champs, tandis que les versions supérieures peuvent en ajouter et sont acceptées pour la compatibilité. Les deux identifiants doivent être en hexadécimal minuscule et ne peuvent pas être entièrement nuls ; l’état d’échantillonnage se lit sur le premier bit des flags : 01 signifie échantillonné, 00 non échantillonné.

Un bloc avec deux lignes traceparent est refusé : la spécification en exige exactement une. Les noms d’en-têtes sont comparés sans tenir compte de la casse — Traceparent: se comporte comme traceparent: — alors que les valeurs sont comparées à l’identique : un identifiant en majuscules, un identifiant de trace de 31 caractères, un champ manquant ou un suffixe supplémentaire échouent chacun avec le motif qui nomme le champ fautif.

tracestate et baggage, entrée par entrée

tracestate est une liste de paires clé=valeur séparées par des virgules. Chaque clé doit respecter la grammaire W3C — une clé simple en minuscules comme acme, ou une clé tenant@system — et la liste accepte au plus 32 membres. Le tableau affiche chaque entrée, signale les paires mal formées, repère une clé répétée et avertit lorsque la liste dépasse la limite. Les valeurs elles-mêmes sont des données de fournisseur et sont affichées telles quelles, sans interprétation.

Les entrées baggage utilisent des clés au format jeton HTTP et peuvent ajouter des métadonnées après un point-virgule. Les clés qui ne sont pas des jetons valides sont signalées, et un contrôle par mots-clés met en évidence les entrées dont la clé ou la valeur mentionne secret, token, password, e-mail, authorization, cookie, session ou user. C’est un rappel de relecture avant de partager un bloc — ce n’est pas une analyse de sécurité : il ne peut pas savoir si une valeur est réellement sensible, et les valeurs baggage sont imprimées telles quelles, sans décodage du pourcent.

Générer un contexte — et ce que l’outil ne fait pas

Générer un contexte enfant relit d’abord l’entrée, puis conserve l’identifiant de trace, crée un nouvel identifiant de span parent aléatoire et préserve les flags, le tracestate et le baggage d’origine : c’est l’ensemble d’en-têtes qu’un service en aval recevrait. Générer un contexte racine crée un identifiant de trace et un identifiant de span parent aléatoires avec le flag d’échantillonnage activé : c’est l’ensemble avec lequel une nouvelle trace commence.

C’est un inspecteur des en-têtes W3C, pas un backend de traçage : il ne peut pas dire si un identifiant de trace existe dans votre collecteur et ne lit pas les formats B3, Zipkin, Jaeger ou propres à un fournisseur. L’entrée ne quitte jamais le navigateur, la page continue de fonctionner hors ligne une fois chargée, et l’outil n’envoie les en-têtes à aucun serveur.

Outils récents :