lttng — Control LTTng tracing
lttng [--group
=GROUP
] [--mi
=xml] [--no-sessiond
|--sessiond-path
=PATH
] [--relayd-path
=PATH
] [--quiet
|-verbose
…] COMMAND [COMMAND OPTIONS
]
The 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).
The lttng
command-line tool, as well as any user application linked
with the LTTng control library (liblttng-ctl
), sends commands to a
listening LTTng session daemon (lttng-sessiond(8)). A session
daemon:
Manages recording sessions (see lttng-concepts(7) to learn more about recording sessions).
Controls the various components (like tracers and consumer daemons) of LTTng.
Sends asynchronous notifications to user applications.
By default, the lttng-create(1) command automatically spawns:
A session daemon for your Unix user if none is currently running.
Override the path of the session daemon binary to spawn with the
--sessiond-path
option.
Avoid automatically spawning a session daemon with the
--no-sessiond
option.
A relay daemon (see lttng-relayd(8)) if all the following statements are true:
You specify the --live
option.
You don’t specify any of the --set-url
, --ctrl-url
,
or --data-url
options.
No relay daemon is currently listening for TCP connections on
127.0.0.1:5344
(default LTTng live reader
connection address and port).
Override the path of the relay daemon binary to spawn with the
--relayd-path
option.
Note:The LTTng project recommends that you start the session daemon at boot time for stable and long-term tracing.
See lttng-concepts(7) to learn more about the foundational concepts of LTTng.
The lttng
tool offers a subcommand-based command-line interface. The
“COMMANDS” section below lists the available commands.
For most of its commands, the lttng
tool needs to connect to a
listening LTTng session daemon (lttng-sessiond(8)) to control LTTng
tracing.
Each Unix user may have its own independent running session daemon.
However, the lttng
tool must connect to the session daemon of the
root
user (the root session daemon) to control Linux kernel tracing.
How the lttng
tool chooses which session daemon to connect to
is as follows:
root
Connect to the root session daemon.
root
Try to connect to the root session daemon.
If the root session daemon isn’t running, connect to the session daemon of your Unix user.
Connect to the session daemon of your Unix user.
The name of the Unix tracing group is one of:
--group
=GROUP
option of the root session daemon (lttng-sessiond(8))
GROUP
In that case, you must use the --group
=GROUP
option, with
the same GROUP
argument, of the lttng
tool.
--group
option of the root session daemon
tracing
LTTng-instrumented user applications automatically register to both the root and user session daemons. This makes it possible for both session daemons to list the available instrumented applications and their instrumentation points (see lttng-list(1)).
-g
GROUP
, --group
=GROUP
Set the name of the Unix tracing group to GROUP
instead of
tracing
.
You must use this option to be able to connect to a root session daemon
(lttng-sessiond(8)) which was started with its own
--group
=GROUP
option.
-m
xml
, --mi
=xml
Print the command’s result using a stable XML machine interface (MI) output instead of the default, unstable human-readable output.
With this mode, lttng
prints the resulting XML document to the
standard output, while it prints any error/warning to the standard error
with an unstable, human-readable format.
If any error occurs during the execution of lttng
, the command
exits with a status different than 0, and lttng
does
not guarantee the syntax and data validity of its MI output.
An XML schema definition (XSD) file used for validation of the MI output
is available: see the src/common/mi_lttng.xsd
file in the LTTng-tools
source tree.
-n
, --no-sessiond
Do not automatically spawn a session daemon for your Unix user when running the lttng-create(1) command.
You may not use this option with the --sessiond-path
option.
-q
, --quiet
Suppress all messages, including warnings and errors.
You may not use this option with the --verbose
option.
--sessiond-path
=PATH
Set the absolute path of the session daemon binary to spawn from the
lttng-create(1) command to PATH
.
You may not use this option with the --no-sessiond
option.
--relayd-path
=PATH
Set the absolute path of the relay daemon binary to spawn from the
lttng-create(1) command to PATH
.
-v
, --verbose
Increase verbosity.
Specify this option up to three times to get more levels of verbosity.
You may not use this option with the --quiet
option.
-h
, --help
Show help.
This option attempts to launch /usr/bin/man
to view this manual page.
Override the manual pager path with the LTTNG_MAN_BIN_PATH
environment
variable.
--list-options
List available command options and quit.
--list-commands
List available commands and quit.
-V
, --version
Show version and quit.
The following commands also have their own --help
option.
Command | Description |
---|---|
Create a recording session. | |
Destroy recording sessions. | |
Unset a recording session rotation schedule. | |
Set a recording session rotation schedule. | |
Load recording session configurations. | |
Regenerate specific recording session data. | |
Archive the current trace chunk of a recording session. | |
Save recording session configurations. | |
Set the current recording session. | |
Take a recording session snapshot. | |
Start a recording session. | |
Show the status of the current recording session. | |
Stop a recording session. |
Command | Description |
---|---|
Add context fields to be recorded. | |
Disable channels. | |
Create or enable a channel. |
Command | Description |
---|---|
Disable recording event rules. | |
Create or enable recording event rules. |
Command | Description |
---|---|
List recording sessions and instrumentation points. |
Command | Description |
---|---|
Allow specific processes to record events. | |
Disallow specific processes to record events. |
Command | Description |
---|---|
Add a trigger. | |
List triggers. | |
Remove a trigger. |
Command | Description |
---|---|
Show the help of a command. | |
Show LTTng-tools version information. | |
Launch a trace reader. |
Success
Command error
Undefined command
Fatal error
Command warning (something went wrong during the command)
LTTNG_ABORT_ON_ERROR
Set to 1
to abort the process after the first error is
encountered.
LTTNG_HOME
Path to the LTTng home directory.
Defaults to $HOME
.
Useful when the Unix user running the commands has a non-writable home directory.
LTTNG_MAN_BIN_PATH
Absolute path to the manual pager to use to read the LTTng
command-line help (with lttng-help(1) or with the
--help
option) instead of /usr/bin/man
.
LTTNG_SESSION_CONFIG_XSD_PATH
Path to the directory containing the session.xsd
recording session
configuration XML schema.
LTTNG_SESSIOND_PATH
Absolute path to the LTTng session daemon binary (see lttng-sessiond(8)) to spawn from the lttng-create(1) command.
The --sessiond-path
general option overrides this environment
variable.
$LTTNG_HOME/.lttngrc
Unix user’s LTTng runtime configuration.
This is where LTTng stores the name of the Unix user’s current recording session between executions of lttng(1). lttng-create(1) and lttng-set-session(1) set the current recording session.
$LTTNG_HOME/lttng-traces
Default output directory of LTTng traces in local and snapshot modes.
Override this path with the --output
option of the
lttng-create(1) command.
$LTTNG_HOME/.lttng
Unix user’s LTTng runtime and configuration directory.
$LTTNG_HOME/.lttng/sessions
Default directory containing the Unix user’s saved recording session configurations (see lttng-save(1) and lttng-load(1)).
/etc/lttng/sessions
Directory containing the system-wide saved recording session configurations (see lttng-save(1) and lttng-load(1)).
Note:$LTTNG_HOME
defaults to the value of the HOME
environment
variable.
Mailing list for support and
development: lttng-dev@lists.lttng.org
IRC channel: #lttng
on irc.oftc.net
This program is part of the LTTng-tools project.
LTTng-tools is distributed under the
GNU General
Public License version 2. See the
LICENSE
file
for details.
Special thanks to Michel Dagenais and the DORSAL laboratory at École Polytechnique de Montréal for the LTTng journey.
Also thanks to the Ericsson teams working on tracing which helped us greatly with detailed bug reports and unusual test cases.