![[18.0.0.1 and later]](../ng_v18001plus.gif)
Habilitación de la instrumentación de código de rastreo distribuida explícita
Utilice la anotación @Traced para instrumentar clases y métodos para OpenTracing.
Acerca de esta tarea
Aplique la anotación @Traced para especificar una clase o un método en el que se debe rastrear para OpenTracing.
Procedimiento
- Aplique la anotación @Traced a una clase o un método.
- Cuando se aplica la anotación @Traced a una clase, la anotación se aplica a todos los métodos de dicha clase.
- Si aplica la anotación @Traced a una clase y un método, la anotación que se aplica al método tiene prioridad. La anotación inicia un intervalo al principio del método y finaliza el intervalo al final del método.
- Opcional: Aplique argumentos a la anotación @Traced.
- value=[true|false]
El argumento value=[true] es el valor predeterminado.
Utilice @Traced(false) para anotar métodos específicos y para inhabilitar la creación de un intervalo para esos métodos. También puede utilizar @Traced(false) para inhabilitar la creación de intervalo de un punto final JAX-RS específico. Cuando utiliza @Traced(false) para un método de punto final JAX-RS, no e extrae el SpanContext en sentido ascendente. Los intervalos que cree, ya sea automáticamente para las solicitudes de salida ya sea explícitamente con un rastreador inyectado, no tienen un intervalo padre en sentido ascendente en la jerarquía de intervalos. De forma predeterminada, el programa rastrea todos los métodos de punto final JAX-RS.
- operationName=<Nombre del intervalo>
El valor predeterminado son las comillas dobles ("").
Si utiliza comillas dobles ("") para el valor operationName, la anotación @Traced utiliza el nombre de operación predeterminado. Si el método anotado no es un punto final JAX-RS, el nombre de operación predeterminado del nuevo intervalo para el método tiene los valores <nombre_paquete.<nombre_clase>.<nombre_método>. Si especifica el valor operationName en una clase, la clase utiliza ese valor operationName para todos los métodos de la clase a menos que un método lo altere temporalmente de forma explícita con su propio valor operationName.
El ejemplo siguiente muestra los argumentos opcionales para la anotación @Traced:
@InterceptorBinding @Target({ TYPE, METHOD }) @Retention(RUNTIME) public @interface Traced { @Nonbinding boolean value() default true; @Nonbinding String operationName() default ""; }
- Acceda al rastreador configurado.
- Utilice la instancia configurada de objeto de rastreador OpenTracing subyacente. Establezca la implementación de MicroProfile para utilizar el rastreador configurado con Contexts and Dependency Injection (CDI).
- Acceda al objeto de rastreador configurado inyectando la clase de rastreador que ha configurado para
la aplicación concreta para este entorno. Cada aplicación recibe una instancia de rastreador diferente.
El
objeto de rastreador habilita el soporte para los requisitos de rastreo complejos, como por ejemplo crear
intervalos dentro de métodos de negocio. El ejemplo siguiente muestra una clase de rastreador inyectado:
@Inject io.opentracing.Tracer configuredTracer;
- Añada etiquetas, registros y equipaje a los intervalos, tal como se muestra en el ejemplo siguiente:
configuredTracer.activeSpan().setTag(...); configuredTracer.activeSpan().log(...); configuredTracer.activeSpan().setBaggage(...);
![[17.0.0.4 and later]](../ng_v17004plus.gif)

Nombre de archivo: twlp_dist_tracing_code_inst.html