Fix: Mark ASCIIDOC_ATTRS_CONF as a dependency of man page targets
[lttng-tools.git] / README.md
... / ...
CommitLineData
1LTTng-tools
2===========
3
4[![Jenkins](https://img.shields.io/jenkins/s/https/ci.lttng.org/lttng-tools_master_build.svg)](https://ci.lttng.org/job/lttng-tools_master_build/)
5[![Coverity](https://img.shields.io/coverity/scan/lttng-tools.svg)](https://scan.coverity.com/projects/lttng-tools)
6
7LTTng-tools is a set of tools to control [LTTng](https://lttng.org/)
8tracing. The project includes the LTTng session daemon, consumer daemon
9and relay daemon, as well as `liblttng-ctl`, a C library used to
10communicate with the session daemon, and `lttng`, a command line
11interface to `liblttng-ctl`.
12
13
14Requirements and optional dependencies
15--------------------------------------
16
17The following items are _required_ to build and run LTTng-tools
18components:
19
20 - **Linux kernel >= 2.6.27**: for `epoll()` support, at least this
21 version is needed. However, `poll()` is also supported by
22 configuring LTTng-tools with the `--disable-epoll` option. Using
23 that, the kernel version may probably be older, but we can't provide
24 any guarantee. Please let us know if you are able to go lower
25 without any problems.
26 - **[`liburcu`](http://www.liburcu.org/) >= 0.8.0**: userspace RCU library,
27 by Mathieu Desnoyers and Paul E. McKenney.
28 - **`libpopt` >= 1.13**: command line arguments parsing library.
29 - Debian/Ubuntu package: `libpopt-dev`
30 - **`libuuid`**: universally unique ID library
31 - Debian/Ubuntu package: `uuid-dev`
32 - **`libxml2` >= 2.7.6**: XML document parsing library. Needed for
33 tracing session configuration saving/loading and machine interface
34 output support.
35 - Debian/Ubuntu package: `libxml2-dev`
36
37
38The following items are _optional_ dependencies:
39
40 - **[Babeltrace](https://lttng.org/babeltrace)**: trace viewer.
41 Enables the use of `lttng view` command.
42 - Debian/Ubuntu package: `babeltrace`
43 - **[LTTng UST](https://lttng.org) (same minor version as LTTng Tools)**:
44 userspace tracer. Enables the tracing of userspace applications.
45 - Debian/Ubuntu package: `liblttng-ust-dev`
46 - **Perl**: needed for `make check` and tests.
47 - **Python >= 3.0**: needed for `make check` and tests.
48 - Debian/Ubuntu package: `python3`
49 - **SWIG >= 2.0** and **Python 3 development headers**: needed for
50 Python bindings
51 (enabled at configure time with the `--enable-python-bindings` option).
52 - Debian/Ubuntu packages: `swig2.0` and `python3-dev`
53 - **modprobe**: needed for automatic LTTng kernel modules loading
54 (kernel tracing).
55 - **bash**: needed to run `make check`.
56 - **man** (manual pager): needed to view LTTng-tools commands' man
57 pages with the `--help` option or with the `lttng help` command.
58 Note that without `man`, you cannot get offline help with
59 LTTng-tools commands, not even their usage.
60
61LTTng-tools supports both the [LTTng Linux Kernel tracer](https://lttng.org)
62and [LTTng user space tracer](https://lttng.org) released as part of the same
63**minor** release series. While some releases do not change the tracer ABIs and
64should work with, no testing is performed to ensure cross-version compatibility
65is maintained.
66
67Note that applications instrumented with older versions of the LTTng UST project
68do not have to be rebuilt or modified to work with the latest LTTng-tools.
69For more information on versioning, please refer to the
70[LTTng documentation](https://lttng.org/docs).
71
72Building
73--------
74
75This source tree is based on the Autotools suite from GNU to simplify
76portability. Here are some things you should have on your system in
77order to compile the Git repository tree:
78
79 - **GNU Autotools** (**Automake >= 1.10**, **Autoconf >= 2.64**,
80 **Autoheader >= 2.50**; make sure your system-wide `automake` points
81 to a recent version)
82 - **[GNU Libtool](http://www.gnu.org/software/autoconf/) >= 2.2**
83 - **Flex >= 2.5.35**
84 - **Bison >= 2.4**
85
86Optional packages to build LTTng-tools man pages:
87
88 - **AsciiDoc >= 8.4.5** (previous versions may work, but were
89 not tested)
90 - **xmlto >= 0.0.21** (previous versions may work, but were
91 not tested)
92
93If you use GNU gold, which is _not_ mandatory, make sure you have this
94version:
95
96 - **GNU gold >= 2.22**
97
98Before this version of GNU gold, we hit a
99[known bug](http://sourceware.org/bugzilla/show_bug.cgi?id=11317).
100Be advised that with GNU gold, you might have to specify
101`-L/usr/local/lib` in `LDFLAGS`.
102
103If you get the tree from the Git repository, you will need to run
104
105 ./bootstrap
106
107in its root. It calls all the GNU tools needed to prepare the tree
108configuration.
109
110To build LTTng-tools, do:
111
112 ./configure
113 make
114 sudo make install
115 sudo ldconfig
116
117If you want Python bindings, add the `--enable-python-bindings` option
118to `configure`. Please note that some distributions will need the
119following environment variables set before running configure:
120
121 export PYTHON="python3"
122 export PYTHON_CONFIG="/usr/bin/python3-config"
123
124
125Using
126-----
127
128Please see [`doc/quickstart.txt`](doc/quickstart.txt) to get started
129with LTTng tracing. You can also use the `-h` or `--help` option of
130any `lttng` command, e.g.:
131
132 lttng enable-event --help
133
134A network streaming HOWTO can be found in
135[`doc/streaming-howto.txt`](doc/streaming-howto.txt) which quickly
136helps you understand how to stream a LTTng 2.x trace.
137
138A Python binding HOWTO can be found in
139[`doc/python-howto.txt`](doc/python-howto.txt) which quickly helps you
140understand how to use the Python module to control LTTng.
141
142
143Contact
144-------
145
146Maintainer: [Jérémie Galarneau](mailto:jeremie.galarneau@efficios.com)
147
148Mailing list: [`lttng-dev@lists.lttng.org`](https://lttng.org/cgi-bin/mailman/listinfo/lttng-dev)
149
150
151Package contents
152----------------
153
154This package contains the following elements:
155
156 - `doc`: LTTng-tools documentation.
157 - `include`: the public header files that will be installed on the system.
158 - `src/bin`: source code of LTTng-tools programs.
159 - `lttng-consumerd`: consumer daemon.
160 - `lttng-crash`: crash trace viewer.
161 - `lttng-relayd`: relay daemon.
162 - `lttng-sessiond`: session daemon.
163 - `lttng`: command line interface for LTTng tracing control.
164 - `src/common`: common LTTng-tools source code.
165 - `compat`: compatibility library mostly for FreeBSD and Linux.
166 - `config`: tracing session configuration saving/loading.
167 - `hashtable`: library wrapper over Userspace RCU hashtables.
168 - `health`: health check subsytem.
169 - `index`: CTF index utilities.
170 - `kernel-consumer`: Linux kernel consumer.
171 - `kernel-ctl`: Linux kernel tracer control.
172 - `relayd`: relay daemon control.
173 - `sessiond-comm`: session daemon communication.
174 - `ust-consumer`: user space consumer.
175 - `src/lib`: source code of LTTng-tools libraries.
176 - `lttng-ctl`: LTTng control library.
177 - `tests`: various test programs.
This page took 0.02345 seconds and 4 git commands to generate.