[erlang-questions] Opentracing for Erlang Processes

Ricardo Oliveira <>
Thu Sep 28 17:54:55 CEST 2017


I'm trying to design a distributed tracing system for Erlang processes
following the opentracing <http://opentracing.io> standard. For the
purpose, I'm supporting myself in otter
<https://github.com/Bluehouse-Technology/otter> for generating and emitting
traces, and jaeger <http://jaeger.readthedocs.io/en/latest/> 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
TChannel <https://github.com/uber/tchannel>. 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 ?

Also , would you see a better (simpler) way of doing this in Erlang, by
taking advantage of the ERTS and OTP, for example, like seq_trace
<http://erlang.org/doc/man/seq_trace.html> is passing `implicitly` the
trace_token in the messages sent between the processes.

Thank you,
Ricardo Oliveira
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170928/f764bb36/attachment.html>


More information about the erlang-questions mailing list