Feedbacks from Apache SkyWalking project #257
Comments
Hey, Sorry for the delayed feedback. Items below:
Sometimes a
Sounds like we make to make the README clearer and augment it too.
It should work just fine (the calls to
One example scenario is a Got the feeling the README could be improved. I will look into that ;) |
Sorry, I miss your comments.
Span cross thread would be a great challenge for SkyWalking. I am aware some of users could say they would, but in Java, especially a real native Java application, every few people really do so from my experience. Since I have help many Chinese big companies to build their systems/services, I think it is , at least in China. Besides the experiences, allowing span across threads also make context very hard to finished. I am aware many tracing systems are only care of span, but in SkyWalking, we are care of Segment( all spans in a serve). At the same time, as an auto instrument agent, we can't count on users' So, I have to say, we could not support API running in that way, Cost too much to maintain context and span to fix a very few user case. SkyWalking only supports context across thread, not span. |
@carlosalberto I know my gitter, if you have further questions, welcome to ping me. I hope we can find some solutions for these. |
Hey @wu-sheng
After talking with a few people from the Cross Language group, we came with the impression that We will be working on the adding this to the spec soon (as a Draft initially, of course - in order to give others a chance to jump in and leave their feedback). |
@carlosalberto I am aware that scenario. In SkyWalking, we use two spans in the two threads. And an across thread ref to link the two segment. I know many manual SDK could support that. |
This is now being discussed as part of opentracing/specification#120 - we will close it here once we have reached an agreement there ;) |
Wondering if we should close this issue and keep the discussion in opentracing/specification#120, as previously mentioned. @wu-sheng any problem with that? Let me know ;) |
Closing this one in favor of opentracing/specification#120 Let me know otherwise ;) |
Hi, everyone. I got some time to review our new 0.31.0 release, and try to update SkyWalking Java OpenTracing implementor, but find some questions and problems about in thread propagation and across thread propagation.
**The questions are all about propagation, and
Span
take too much duties, both propagation and tag/log data. ScopeManager should be in charge of propagation. **In Thread Propagation
Span can be created by
tracer#buildSpan
, and then needscopeManager#activate
. Then what will happen if a span created by not active, but someone used it? By that question, my major point is that, why design the API in that way. Why don't just usescopeManager#buildSpan
to create one? Allowing a span stays innot-active-yet
can trigger questions.Cross Thread Propagation
I feel like the cross thread propagation APIs is not so explicit than
0.30.0
and also cause me some questions.This is our documents say:
Span
should be used in multi thread or a single one? That is important for people who use OT-java library to do real instrument for some frameworks having multi threads models.span#tag
orspan#log
are called in child/another thread but not active?Also based on that, in SkyWalking implementation, we don't support a single span being manipulated in multi thread. I hope we can agree on this. And then, when cross thread happens, I proposal to use
ScopeManager#capture
andScopeManager#continued
(just example names) APIs to notify the thread changes.I proposal this not just because SkyWalking did that, more important reason is most Java tracers/APMs use
ThreadLocal
to propagate in thread, which it is efficiency and easy, so they all need be notified. By efficiency, I mean the tracer didn't need to consider race condition (sync or lock) for span's methods.At least, we should be clear what we recommend to do in async scenario for library end user and tracer implementor.
cc @opentracing/otsc @opentracing/otiab
The text was updated successfully, but these errors were encountered: