Commit | Line | Data |
---|---|---|
6b7fb0d3 PP |
1 | --- |
2 | id: lttng-alternatives | |
3 | --- | |
4 | ||
5 | Excluding proprietary solutions, a few competing software tracers | |
6 | exist for Linux: | |
7 | ||
8 | * <a href="https://www.kernel.org/doc/Documentation/trace/ftrace.txt" class="ext">ftrace</a> | |
9 | is the de facto function tracer of the Linux kernel. Its user | |
10 | interface is a set of special files in sysfs. | |
11 | * <a href="https://perf.wiki.kernel.org/" class="ext">perf</a> is | |
12 | a performance analyzing tool for Linux which supports hardware | |
13 | performance counters, tracepoints, as well as other counters and | |
14 | types of probes. perf's controlling utility is the `perf` command | |
15 | line/curses tool. | |
16 | * <a href="http://linux.die.net/man/1/strace" class="ext">strace</a> | |
17 | is a command line utility which records system calls made by a | |
18 | user process, as well as signal deliveries and changes of process | |
19 | state. strace makes use of | |
20 | <a href="https://en.wikipedia.org/wiki/Ptrace" class="ext">ptrace</a> | |
21 | to fulfill its function. | |
22 | * <a href="https://sourceware.org/systemtap/" class="ext">SystemTap</a> | |
23 | is a Linux kernel and user space tracer which uses custom user scripts | |
24 | to produce plain text traces. Scripts are converted to the C language, | |
25 | then compiled as Linux kernel modules which are loaded to produce | |
26 | trace data. SystemTap's primary user interface is the `stap` | |
27 | command line tool. | |
28 | * <a href="http://www.sysdig.org/" class="ext">sysdig</a>, like | |
29 | SystemTap, uses scripts to analyze Linux kernel events. Scripts, | |
30 | or _chisels_ in sysdig's jargon, are written in Lua and executed | |
31 | while the system is being traced, or afterwards. sysdig's interface | |
32 | is the `sysdig` command line tool as well as the curses-based | |
33 | `csysdig` tool. | |
34 | ||
35 | The main distinctive features of LTTng is that it produces correlated | |
36 | kernel and user space traces, as well as doing so with the lowest | |
37 | overhead amongst other solutions. It produces trace files in the | |
38 | <a href="http://www.efficios.com/ctf" class="ext"><abbr title="Common Trace Format">CTF</abbr></a> | |
39 | format, an optimized file format for production and analyses of | |
40 | multi-gigabyte data. LTTng is the result of close to 10 years of | |
41 | active development by a community of passionate developers. It is | |
42 | currently available on all major desktop, server, and embedded Linux | |
43 | distributions. | |
44 | ||
45 | The main interface for tracing control is a single command line tool | |
46 | named `lttng`. The latter can create several tracing sessions, | |
47 | enable/disable events on the fly, filter them efficiently with custom | |
48 | user expressions, start/stop tracing, and do much more. Traces can be | |
49 | recorded on disk or sent over the network, kept totally or partially, | |
50 | and viewed once tracing becomes inactive or in real-time. | |
51 | ||
52 | [Install LTTng now](#doc-installing-lttng) and start tracing! |