[英]Open tracing instrumentation for ForkJoinPool.commonPool()
我的應用程序廣泛使用CompletableFuture.supplyAsync(() -> someService(context, args));
& 我們依靠 supplyAsync 使用ForkJoinPool.commonPool()
線程池來讓服務在自己的線程中運行。
有沒有辦法在開放跟蹤中檢測 someService 調用,而無需將自定義Executor
作為參數傳遞給 supplyAsync()? 我正在使用 spring 和 jaeger 並具有以下依賴項
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
<version>3.2.2</version>
</dependency>
據我所知, ForkJoinPool.commonPool()
的設計使得不可能以編程方式用檢測版本實際替換該池。 所以唯一的解決方法是通過字節碼操作來做到這一點。
OpenTelemetry Java 自動檢測庫執行了很多魔法,能夠通過異步/並發原語正確傳播上下文,您可能想嘗試一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.