<div dir="ltr">Hi Ferenc, <div><br></div><div>Thank you for your answer.</div><div><br></div><div>I don't believe this is really otter specific. The way I see it, otter is just acting as trace emitter, following the opentracing standard. If we would replace it by other lib, we would still have the same problem.</div><div>For example, I can have a task that in order to be completed needs to go through multiple Erlang processes that do different things, like access a db, interact with external api, etc. </div><div>Typically an application contains many tasks or flows, that can run concurrently, and each task can also have many instantiations.</div><div>So when one of the processes involved in a task gets a message from another process, how does that process knows to which specific task (context) will it be realizing work for ? Why ? Because with that we could track the flow of execution of a task between all the involved processes. So my question is about how we can propagate this tracing context between processes? Explicitly/forced in all the messages exchanged between the processes? Or if there is another implicit way (like seq_trace does) of doing this ?</div><div><br></div><div>Thanks</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 28, 2017 at 6:06 PM Ferenc Holzhauser <<a href="mailto:ferenc.holzhauser@gmail.com">ferenc.holzhauser@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Ricardo,<div><br></div><div>Otter has different APIs, but indeed you do need to pass something on the process boundaries. </div><div>I think this discussion will be very otter specific, so I'd suggest to open an issue on github. We can brainstorm there and see if we can come up with something nice for this.</div><div><br></div><div>Regards,</div><div>Ferenc</div></div><div class="gmail_extra"><br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On 28 September 2017 at 17:54, Ricardo Oliveira <span dir="ltr"><<a href="mailto:picaoao@gmail.com" target="_blank">picaoao@gmail.com</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm trying to design a distributed tracing system for Erlang processes following the <a href="http://opentracing.io" target="_blank">opentracing</a> standard. For the purpose, I'm supporting myself in <a href="https://github.com/Bluehouse-Technology/otter" target="_blank">otter</a> for generating and emitting traces, and <a href="http://jaeger.readthedocs.io/en/latest/" target="_blank">jaeger</a> for collecting, querying and storing them.. The question for which I can't figure out a clear answer is how should I pass the trace payload between processes. The first idea that comes to me is to put the trace information in the all the messages passed between processes, and with that define a sort of message protocol that all messages would have to `extend`. This was the approach Uber used to solve this problem, with the implementation of <a href="https://github.com/uber/tchannel" target="_blank">TChannel</a>. This would be a bit awkward to implement in Erlang, as we would have to `force` all messages exchanged between processes to include this payload, and I don't know how I could do this properly. Do you have a way of doing this ?</div><div><br></div><div>Also , would you see a better (simpler) way of doing this in Erlang, by taking advantage of the ERTS and OTP, for example, like <a href="http://erlang.org/doc/man/seq_trace.html" target="_blank">seq_trace</a> is passing `implicitly` the trace_token in the messages sent between the processes.</div><div><br></div><div>Thank you,</div><div>Ricardo Oliveira<br></div></div>
<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>
</blockquote></div>