-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when pinpoint integrate TtlAgent | pinpoint集成TtlAgent报错 #158
Comments
『
即 使用 empty array 而不是 从你提供的问题来看,使用 我改一下,发一个新版本。 @nepoch
|
confirm ClassFileTransformer#transform spec strictly
confirm ClassFileTransformer#transform spec strictly
已发布了 @nepoch 使用新版本测试一下,是不是 OK了? ❤️ |
@oldratlee 更新后测试正常,谢谢啦。 |
@nepoch pinpoint已经支持了异步上下文透传,你们的使用场景方便告诉一下么? 为了传递业务上的 ThreadLocal 而非 tracing 的 threadlocal 么? |
嗯嗯,有一些业务数据的传递。而且在线程池场景下也要拿到业务数据。我测试了pinpoint1.8.1版本,在使用线程池情况下也拿不到trx_id,所以直接集成了TTL。 |
@hoverwinter 我们想在日志中记录每个请求的trace_id来实现日志全链路查询等功能,但pinpoint采样后,有些请求的trx_id没有,以及跨线程也会断掉。 所以我们就想在Pinpoint中集成transmittable-thread-local,来实现跨线程的日志全链路追踪。 不知道您有什么其他好的建议没 |
Use version:
pinpoint
: 1.8.1TTL
: 2.11.0Error when added
TtlAgent.premain (agentArgs, inst);
to the startup class ofpinpoint
. And finally found out:The
TtlTransformer
class implements theClassFileTransformer
interfacetransform
and returnsEMPTY_BYTE_ARRAY = ()
directly for non-enhanced classesI see return value description of
JavaDoc
forTransform
method ofClassFileTransformer
interface isIt should mean that if it is not enhanced, it should return
null
.I tried changing the source code to return
null
instead of{}
, and the program runs normally.Is there any special purpose for the
transform
implementation of theTtlTransformer
class to returnEMPTY_BYTE_ARRAY = {}
? Is there any other impact of changing to returningnull
here?使用版本
pinpoint
: 1.8.1TTL
: 2.11.0在
pinpoint
的启动类中加入了TtlAgent.premain(agentArgs, inst);
后报错,最后排查到:TtlTransformer
类实现ClassFileTransformer
接口transform
是对于不增强的类直接返回了EMPTY_BYTE_ARRAY = {}
我看
ClassFileTransformer
接口的transform
方法JavaDoc
的返回值说明是意思应该是说如果不做增强的话应该返回
null
这样我试了改源码成返回
null
而不是{}
,程序运行正常。TtlTransformer
类的transform
实现返回EMPTY_BYTE_ARRAY = {}
是有什么特殊用意吗?这里改成返回null
会不会有什么其他影响?The text was updated successfully, but these errors were encountered: