Welcome to the official website for utt, the Useful Tracing Tools library for Linux.
utt project files (example apps and related stuff) can be found here.
To get started quickly writing an utt tracer and/or parser, see the utt tutorial page.
utt is a userspace library that Linux kernel tracing applications can use to create standalone tracers and parsers.
Using utt, tracers can efficiently stream per-cpu tracing data to disk, a network destination or through a pipe to a concurrently running parser/processing chain('live mode' tracing).
An utt parser retrieves the trace data generated by a corresponding utt tracer, either from files logged locally or across the network, or from real-time output from a tracer in 'live mode'.
Future versions will be able to combine the output of any number of standalone utt tracers/parsers seamlessly - individual tracers can thus be used for special-purpose tracing, but could also be combined into a system-wide tracer greater than the sum of its parts.
Implementation-wise, utt is the blktrace userspace code, generalize and made available to other tracing applications in the form of a library called libutt. Like blktrace, utt is in turn based on the relay facility in the linux kernel.
'utt' actually consists 2 separate pieces (sub-APIS):
Like blktrace, these can be used separately and connected with pipes, for maximum flexibility.
To get up and running as quickly as possible, see the 'utt tutorial' which goes through the details of creating a real tracing application using utt.