The documentation is excellent.
edit: Yes, EfficiOS [1] is the open source business behind the LTTng project :).
1) Clicked Fedora on install docs
2) Installed lttng-tools and lttng-ust RPMs
3) Clicked Getting Started in docs. Ran "lttng list --kernel".
3a) Got an error saying I need to run the systemd service.
4) Started systemd service (didn't see this mentioned in the docs?)
5) Reran "lttng list --kernel".... error saying I'm missing a module
5a) Reread docs, realized I need to build LTTng-modules. Which led me to find out I need to also build liburcu
6) Installed liburcu but got an error building lttng-modules https://gist.github.com/dmix/d2d4c3c1b823e82486bf (I could submit this as a bug report?)
So I gave up to attempt the install another time.
It provides lockless datastructures for screaming fast concurrency on multicore machines. You will be pleasantly surprised by the concurrent hash-map implementation that comes with it [1].
[1] here's the paper for background: https://www.usenix.org/conference/usenixatc11/resizable-scal...
https://www.youtube.com/watch?v=9XokHJadkq4
The slides are in English, if that helps:
http://lttng.org/files/papers/presentations/lttng20tracingfo...
The main distinctive features of LTTng is that it produces correlated kernel and user space traces, as well as doing so with the lowest overhead amongst other solutions. It produces trace files in the CTF format, an optimized file format for production and analyses of multi-gigabyte data. LTTng is the result of close to 10 years of active development by a community of passionate developers. It is currently available on all major desktop and embedded Linux distributions."
Further down you'll discover that your application(s) are linked with a library provided by the project.
Most of them rely on kprobes [1], or like ftrace on [2]. But there is also oprofile [3], and almighty perf [4], which rely on CPU extensions to implement tracing, (also implemented and by the HW manufacturer as well -- but in a OS-agnostic way).
[1] http://lxr.free-electrons.com/source/Documentation/kprobes.t...
[2] http://lxr.freeelectrons.com/source/Documentation/filesystem...
[3] http://oprofile.sourceforge.net/doc/internals/index.html
LTTng, on the other hand, is a tracer, which means it collects events from the kernel (using the built-in tracepoint facilities) as they happen. It's also possible to trace userspace apps (with lttng-ust), or define your own tracepoints. This has the benefit of being much more detailed, and also has a much smaller overhead.
You might be interested in reading the "What is Tracing?" section of the lttng docs [0], which does a far better job at explaining this than I do.