![[18.0.0.1 以及更新版本]](../ng_v18001plus.gif)
啟用明確的分散式追蹤程式碼檢測
使用 @Traced 註釋,來檢測 OpenTracing 的類別和方法。
關於這項作業
套用 @Traced 註釋,為 OpenTracing 指定要追蹤的類別或方法。
程序
- 將 @Traced 註釋套用至類別或方法。
- 當您將 @Traced 註釋套用至類別時,會將註釋套用至該類別的所有方法。
- 如果您將 @Traced 註釋套用至類別和方法,則會優先採用套用至方法的註釋。註釋會從方法開頭啟動跨距,並在方法結束時完成跨距。
- 選擇性的: 將引數套用至 @Traced 註釋。
- value=[true|false]
value=[true] 引數是預設值。
使用 @Traced(false),來標註特定的方法,並針對這些方法,阻止建立跨距。您也可以使用 @Traced(false),針對特定的 JAX-RS 端點,阻止建立跨距。當您將 @Traced(false) 用於 JAX-RS 端點方法時,將不會擷取上游的 SpanContext。任何您所建立的跨距,不論是針對出埠要求自動建立,或是使用所注入追蹤器明確建立,在跨距階層中都不會有一個上游的母項跨距。依預設,程式會追蹤所有的 JAX-RS 端點方法。
- operationName=<Name for the span>
預設值是雙引號 ("")。
如果您使用雙引號 ("") 作為 operationName 值,則 @Traced 註釋會使用預設作業名稱。如果所標註的方法不是 JAX-RS 端點,該方法之新跨距的預設作業名稱值會是 <package name>.<class name>.<method name>。如果您在類別上指定 operationName 值,類別會將該 operationName 值用於該類別的所有方法(除非其中有方法以其自己的 operationName 值置換該值)。
下列範例顯示 @Traced 註釋的選用引數:
@InterceptorBinding @Target({ TYPE, METHOD }) @Retention(RUNTIME) public @interface Traced { @Nonbinding boolean value() default true; @Nonbinding String operationName() default ""; }
- 存取所配置的追蹤器。
- 使用基礎 OpenTracing 追蹤器物件配置的實例。設定 MicroProfile 實作,以便將所配置的追蹤器與「環境定義和相依關係注入 (CDI)」搭配使用。
- 藉由注入您配置給此環境之特定應用程式的追蹤器類別,來存取所配置的追蹤器物件。每一個應用程式會收到不同的追蹤器實例。追蹤器物件可支援複雜的追蹤需求,例如:在商業方法內建立跨距。下列範例顯示所注入的追蹤器類別:
@Inject io.opentracing.Tracer configuredTracer;
- 新增 tag、log 和 baggage 至跨距,如下列範例所示:
configuredTracer.activeSpan().setTag(...); configuredTracer.activeSpan().log(...); configuredTracer.activeSpan().setBaggage(...);
上層主題:
啟用分散式追蹤
![[17.0.0.4 以及更新版本]](../ng_v17004plus.gif)

檔名:twlp_dist_tracing_code_inst.html