[erlang-questions] Erlang tracing

Knut Nesheim <>
Wed Sep 30 11:05:06 CEST 2015


On Mon, 21 Sep 2015 at 10:52 Lukas Larsson <> wrote:

>
> To set the scope of the discussion, when I say tracing I include; erlang
> tracing, dtrace/systemtap, trace outputs (stdout/file/IP), filtering
> through match specs, sequence tracing, tool integration (dbg, fprof,
> redbug, recon to mention some) and probably more.
>

I've spent many hours trying to build "always on" instrumentation tools,
that you can even run in busy production systems. The biggest challenge in
Erlang compared to other languages / virtual machines is that it's more or
less impossible to follow the execution of a request due to the "use
processes for everything" designs many systems adopt. seq_trace has the
potential to help with this without requiring changes to code, but falls on
it's face as soon as a process talks to a port driver, which happens all
the time in most systems.

If after calling gen_tcp:send/receive the seq_trace token is still around,
it would be possible to build such an instrumentation tool.

If the seq_trace token could be transferred as part of a message to another
node, that would be incredibly useful.

To give some context, New Relic provides agent libraries for many languages
and relies on thread locals to trace typically a HTTP request as it calls
different libraries, different databases, etc. This agent periodically
sends aggregated data back to New Relic, which has a nice web app where you
can view what is going on inside your systems.

Regards
Knut
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150930/a3173be2/attachment-0001.html>


More information about the erlang-questions mailing list