LTTng

Linux Trace Toolkit Viewer/Next Generation

LTTV is a modular viewer/analysis tool specifically designed to deal with very large traces generated by a production system.

It comes with a Linux kernel tracer, Linux Trace Toolkit Next Generation (LTTng), which builds on the existing LTT tracepoints and RelayFS delivery mechanism but is a complete rewrite of LTT tracing module and daemon.

The design aims at facilitating contributions from the community. We know that the vast quantity of analysis that can be performed on trace data is practically unlimited, so we want to make it as easy and fun as possible to add those to the project.

You can get it at http://www.lttng.org. Follow the Quickstart guide to know how to get it from Debian packages, RPM or sources.

LTTV key features :

- dynamically loadable plugins : each specific view/analysis becomes a plugin. - module dependencies architecture for maximum functionality reuse and easier testing.
 * Support for large traces (it has been tested with 15GB traces). I has been designed from the start to deal with huge traces.
 * Information from several tracefiles can be combined in a single view on the fly.
 * Deals with traces coming from any architecture size or endianness.
 * Text command line interface supporting plugins for trace batch analysis.
 * Graphical interface supporting visualisation plugins.
 * Flexible event filter.
 * Modular architecture :
 * Addition of new instrumentations (or any kind of trace point) becomes easier with an event description parser and a tracing code generator (genevent).

You can also get LTTng from http://www.lttng.org. Available in Debian, RPM and sources packages. See the Quickstart guide.

LTTng key features :


 * Easy addition of new instrumentations by supporting the genevent code generator.
 * Very precise timestamps on events by using the processor cycle counter as an unique monotonic time reference.
 * Minimal impact on the traced system : instrumentation does not disable interrupts or take locks. It uses RCU and cmpxchg atomic operations instead.
 * Non maskable interrupts (NMI) reentrancy.
 * Supports many nestable types : structures, unions, arrays, sequences.
 * Supports host dependent types.
 * Makes dynamic alignment of trace data with a low overhead.
 * Integration with LTTV viewer so tracing can be controlled directly from the graphical interface.
 * Can record many (n) independent traces at once.
 * Modular architecture.

http://lwn.net/Articles/166952/