Traçage d’événements : traçage d’IDs propagé de parent à enfant par des appels de procédure¶
Attention
Ce changement de comportement est présent dans le bundle 2024_04.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
- Avant la modification:
 Le
trace_idde chacun des spans créés par des procédures stockées Java et Scala chaînées ou des UDFs est unique.Le champ
parent_span_idn’existe pas dans la colonne RECORD de la table d’événements.Les fournisseurs et les consommateurs de Native apps voient des valeurs
trace_iddifférentes pour les événements partagés. Le fournisseur voit la version hachée.- Après la modification:
 Les spans générés par des procédures stockées Java et Scala enchaînées ou des UDFs ont le même
trace_id. La colonne RECORD a un attributparent_span_id.Les spans générés par les procédures stockées Java et Scala chaînées ou des UDFs ont une relation parent-enfant entre
parent_span_idetspan_id. Les procédures stockées Java et Scala peuvent appeler d’autres procédures stockées dans une chaîne de n’importe quelle longueur. (Comme les UDFs ne peuvent pas exécuter d’instructions SQL, l’appel à une UDF met fin à la chaîne. Cependant, les informations de trace sont toujours propagées aux spans de l’UDF.)Si la procédure stockée Java ou Scala ou l’UDF a été appelée par l’utilisateur directement (la racine), alors le
trace_idsera un ID aléatoire et il n’y aura pas deparent_span_id. Si le traçage est désactivé pour une procédure stockée et qu’il appelle une autre procédure stockée ou une UDF, lestrace_iddes spans de l’enfant seront aléatoires et n’auront pas deparent_span_id. En d’autres termes, la trace est redémarrée au niveau de l’enfant.Les fournisseurs et les consommateurs de Native apps voient le même
trace_idpour les procédures stockées Java ou Scala partagées ou les événements UDF, ce qui permet de les déboguer plus facilement.
Réf : 1592