lttng(1)
========
:revdate: 16 October 2019


NAME
----
lttng - LTTng 2 tracer control command-line tool


SYNOPSIS
--------
[verse]
*lttng* [option:--group='GROUP'] [option:--mi='TYPE'] [option:--no-sessiond | option:--sessiond-path='PATH']
      [option:--quiet | option:-v | option:-vv | option:-vvv] '<<commands,COMMAND>>' ['COMMAND OPTIONS']


DESCRIPTION
-----------
The https://lttng.org/[_Linux Trace Toolkit: next generation_] is an open
source software package used for correlated tracing of the Linux kernel,
user applications, and user libraries.

LTTng consists of Linux kernel modules (for Linux kernel tracing) and
dynamically loaded libraries (for user application and library tracing).

An LTTng _session daemon_, man:lttng-sessiond(8), receives
commands from the command-line interface `lttng` to control the LTTng
tracers. All interactions with the LTTng tracers happen through the
`lttng` tool or through the liblttng-ctl library shipped with the
LTTng-tools package.

A _tracing domain_ is a tracer category. There are five available
domains. For some commands, the domain needs to be specified with a
command-line option. The domain options are:

nloption:-j, nloption:--jul::
    Apply command to the `java.util.logging` (JUL) domain.

nloption:-k, nloption:--kernel::
    Apply command to the Linux kernel domain.

nloption:-l, nloption:--log4j::
    Apply command to the https://logging.apache.org/log4j/1.2/[Apache log4j 1.2]
    (Java) domain.

nloption:-p, nloption:--python::
    Apply command to the https://www.python.org/[Python] domain.

nloption:-u, nloption:--userspace::
    Apply command to the user space domain (application using
    liblttng-ust directly; see man:lttng-ust(3)).

The LTTng session daemon is a tracing registry which allows the user to
interact with multiple tracers (kernel and user space) within the same
container, a _tracing session_. Traces can be gathered from the Linux
kernel and/or from instrumented applications (see
man:lttng-ust(3)). You can aggregate and read the events of LTTng
traces using man:babeltrace2(1).

To trace the Linux kernel, the session daemon needs to be running as
`root`. LTTng uses a _tracing group_ to allow specific users to interact
with the root session daemon. The default tracing group name is
`tracing`. You can use the option:--group option to set the tracing
group name to use.

Session daemons can coexist. You can have a session daemon running as
user Alice that can be used to trace her applications alongside a root
session daemon or a session daemon running as user Bob.

NOTE: It is highly recommended to start the session daemon at boot time
for stable and long-term tracing.

User applications instrumented with LTTng automatically register to the
root session daemon and to user session daemons. This allows any session
daemon to list the available traceable applications and event sources
(see man:lttng-list(1)).

By default, the man:lttng-create(1) command automatically spawns a
user session daemon if none is currently running. The
option:--no-sessiond general option can be set to avoid this.


OPTIONS
-------
option:-g 'GROUP', option:--group='GROUP'::
    Use 'GROUP' as Unix tracing group (default: `tracing`).

option:-m 'TYPE', option:--mi='TYPE'::
    Print the command's result using the machine interface type 'TYPE'
    instead of a human-readable output.
+
Supported types: `xml`.
+
The machine interface (MI) mode converts the traditional pretty-printing
to a machine output syntax. The MI mode provides a change-resistant way
to access information generated by the `lttng` command-line program.
+
When using the MI mode, the data is printed to the standard output.
Errors and warnings are printed on the standard error with the
pretty-print default format.
+
If any error occurs during the execution of a command, the return value
of the command will be different than 0. In this case, `lttng` does
:not: guarantee the syntax and data validity of the generated MI output.
+
For the `xml` MI type, an XML schema definition (XSD) file used for
validation is available: see the `src/common/mi_lttng.xsd` file in
the LTTng-tools source tree.

option:-n, option:--no-sessiond::
    Do not automatically spawn a session daemon.

option:-q, option:--quiet::
    Suppress all messages, including warnings and errors.

option:--sessiond-path='PATH'::
    Set the session daemon binary's absolute path to 'PATH'.

option:-v, option:--verbose::
    Increase verbosity.
+
Three levels of verbosity are available, which are triggered by
appending additional `v` letters to the option
(that is, `-vv` and `-vvv`).


Program information
~~~~~~~~~~~~~~~~~~~
option:-h, option:--help::
    Show help.

option:--list-commands::
    List available commands.

option:--list-options::
    List available general options.

option:-V, option:--version::
    Show version.


[[commands]]
COMMANDS
--------
The following commands also have their own nloption:--help option.


Tracing sessions
~~~~~~~~~~~~~~~~
man:lttng-create(1)::
    {cmd_descr_create}.

man:lttng-destroy(1)::
    {cmd_descr_destroy}.

man:lttng-load(1)::
    {cmd_descr_load}.

man:lttng-regenerate(1)::
    {cmd_descr_regenerate}.

man:lttng-save(1)::
    {cmd_descr_save}.

man:lttng-set-session(1)::
    {cmd_descr_set_session}.


Channels
~~~~~~~~
man:lttng-add-context(1)::
    {cmd_descr_add_context}.

man:lttng-disable-channel(1)::
    {cmd_descr_disable_channel}.

man:lttng-enable-channel(1)::
    {cmd_descr_enable_channel}.


Event rules
~~~~~~~~~~~
man:lttng-disable-event(1)::
    {cmd_descr_disable_event}.

man:lttng-enable-event(1)::
    {cmd_descr_enable_event}.


Status
~~~~~~
man:lttng-list(1)::
    {cmd_descr_list}.

man:lttng-status(1)::
    {cmd_descr_status}.


Control
~~~~~~~
man:lttng-snapshot(1)::
    {cmd_descr_snapshot}.

man:lttng-start(1)::
    {cmd_descr_start}.

man:lttng-stop(1)::
    {cmd_descr_stop}.


Tracing session rotation
~~~~~~~~~~~~~~~~~~~~~~~~
man:lttng-disable-rotation(1)::
    {cmd_descr_disable_rotation}.

man:lttng-enable-rotation(1)::
    {cmd_descr_enable_rotation}.

man:lttng-rotate(1)::
    {cmd_descr_rotate}.



Resource tracking
~~~~~~~~~~~~~~~~~
man:lttng-track(1)::
    {cmd_descr_track}.

man:lttng-untrack(1)::
    {cmd_descr_untrack}.


Miscellaneous
~~~~~~~~~~~~~
man:lttng-help(1)::
    {cmd_descr_help}.

man:lttng-version(1)::
    {cmd_descr_version}.

man:lttng-view(1)::
    {cmd_descr_view}.


include::common-cmd-footer.txt[]


SEE ALSO
--------
man:lttng-sessiond(8),
man:lttng-relayd(8),
man:lttng-crash(1),
man:lttng-ust(3),
man:babeltrace2(1)
