[18.0.0.1 and later]

Activation de l'instrumentation de code de traçage explicite

Utilisez l'annotation @Traced pour instrumenter des classes et méthodes pour OpenTracing.

Pourquoi et quand exécuter cette tâche

Appliquez l'annotation @Traced afin d'indiquer une classe ou une méthode à tracer pour OpenTracing.

Procédure

  1. Appliquez l'annotation @Traced à une classe ou une méthode.
    • Lorsque vous appliquez l'annotation @Traced à une classe, l'annotation est appliquée à toutes les méthodes de cette classe.
    • Si vous appliquez l'annotation @Traced à une classe et une méthode, l'annotation appliquée à la méthode est prioritaire. L'annotation démarre un élément span au début de la méthode et le termine à la fin de la méthode.
  2. Facultatif : Appliquez des arguments à l'annotation @Traced.
    value=[true|false]

    L'argument value=[true] est la valeur par défaut.

    Utilisez @Traced(false) pour annoter des méthodes spécifiques et pour désactiver la création d'un élément span pour ces méthodes. Vous pouvez également utiliser @Traced(false) pour désactiver la création d'élément span d'un noeud final JAX-RS spécifique. Lorsque vous utilisez @Traced(false) pour une méthode associée à un noeud final JAX-RS, l'élément SpanContext en amont n'est pas extrait. tout élément span que vous créez, que ce soit automatiquement pour des demandes sortantes ou explicitement avec un traceur injecté, ne possède pas d'élément span parent en amont dans la hiérarchie des éléments span. Par défaut, le programme trace toutes les méthodes associées à un noeud final JAX-RS.

    operationName=<Nom de l'élément span>

    La valeur par défaut correspond à des guillemets ("").

    Si vous utilisez des guillemets ("") pour la valeur operationName, l'annotation @Traced utilise le nom d'opération par défaut. Si la méthode annotée n'est pas associée à un noeud final JAX-RS, le nom d'opération par défaut du nouvel élément span pour la méthode contient les valeurs <nom de package>.<nom de classe>.<nom de méthode>. Si vous spécifiez la valeur operationName sur une classe, la classe utilise cette valeur operationName pour toutes les méthodes qu'elle contient, à moins qu'une méthode s'y substitue de manière explicite avec sa propre valeur operationName.

    L'exemple suivant montre les arguments facultatifs de l'annotation @Traced :

    @InterceptorBinding
    @Target({ TYPE, METHOD })
    @Retention(RUNTIME)
    public @interface Traced {
        @Nonbinding
        boolean value() default true;
        @Nonbinding
        String operationName() default "";
    }
  3. Accédez au traceur configuré.
    1. Utilisez l'instance configurée de l'objet traceur OpenTracing sous-jacent. Définissez l'implémentation MicroProfile afin d'utiliser le traceur configuré avec la spécification CDI (Contexts and Dependency Injection).
    2. Accédez à l'objet traceur configuré en injectant la classe de traceur que vous avez configurée pour l'application particulière pour cet environnement. Chaque application reçoit une instance de traceur différente. L'objet traceur active la prise en charge d'exigences de traçage complexes, comme la création d'éléments span au sein de méthodes métier. L'exemple suivant illustre une classe de traceur injecté :
      @Inject
      io.opentracing.Tracer configuredTracer;
    1. Ajoutez aux éléments span des étiquettes, journaux et bagages, comme illustré dans l'exemple suivant :
      configuredTracer.activeSpan().setTag(...);
      configuredTracer.activeSpan().log(...);
      configuredTracer.activeSpan().setBaggage(...);

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_dist_tracing_code_inst.html