Google XRay: A Function Call Tracing System [pdf]
NOT ANOTHER TRACER!!<p>I&#x27;m sure it&#x27;s impressive engineering work, but why oh why...<p>How does it compare to Linux uprobes, which are built into Linux mainline? Bear in mind there are different front ends for uprobes (ftrace, perf_events, bcc, ...), and these are also still in development, so if one lacked certain features they needed, such features could be added. There&#x27;s been a LOT of work in this area in the past 6 months, as well (see lkml).<p>If the goal was lowest performance, then why compile with no-op sleds (&quot;negligible overhead&quot;) instead of using dynamic tracing (literally &quot;zero overhead&quot;)? Or, if the existing kernel-based dynamic tracers benchmarked poorly, then why not something like LTTng?<p>How does it compare to DTrace, as well? (Doesn&#x27;t Google have some FreeBSD?).<p>All the tracers I mentioned can not only do dynamic tracing, but also instrument all user and kernel code, without special recompilation.