簡體   English   中英

為 ForkJoinPool.commonPool() 打開跟蹤工具

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM