lttng-relayd — LTTng relay daemon
lttng-relayd [--background
|--daemonize
] [--config
=PATH
] [--control-port
=URL
] [--data-port
=URL
] [--fd-pool-size
=COUNT
] [--live-port
=URL
] [--output
=DIR
] [--group
=GROUP
] [--verbose
]… [--working-directory
=DIR
] [--group-output-by-host
|--group-output-by-session
] [--disallow-clear
]
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).
An LTTng relay daemon, lttng-relayd
, is a program which receives trace
data from (possibly remote) LTTng session/consumer daemons and which
writes it to the local file system. The relay daemon also accepts LTTng
live connections from compatible readers (for example,
babeltrace2(1)); this is the recommended approach to read trace data
while the remote recording session is active.
By default, a relay daemon listens on all network interfaces to receive
trace data, but only on localhost
for LTTng live connections. Override
the listening URLs with the --control-port
, --data-port
,
and --live-port
options (see the “URL format”
section below). For example, use the
--live-port
=tcp://0.0.0.0:5344
option
to make a relay daemon listen to LTTng live connections on all network
interfaces.
Once LTTng has completely sent a trace to a relay daemon RD
,
any LTTng trace reader can read the trace located on the local file
system of RD
.
By default, lttng-relayd
doesn’t start as a daemon. Make it a daemon
with the --daemonize
or --background
option. With those
options, lttng-relayd
ensures the daemon is listening to incoming
connections before it exits.
When you run lttng-relayd
, it configures itself from, in this order:
The INI configuration file /etc/lttng/lttng.conf
, if any.
The INI configuration file $LTTNG_HOME/.lttng/lttng.conf
, if any.
$LTTNG_HOME
defaults to $HOME
.
With the --config
=PATH
option: the INI configuration file
PATH
.
The command-line options.
Each step can override a previous configuration property.
In INI configuration files, the session daemon only reads the properties
under the relayd
INI section. Each INI property is:
The long name of a command-line option to set (see the “OPTIONS” section below).
Option argument (string).
true
yes
on
Enable the option.
false
no
off
Disable the option.
INI configuration file example:
[relayd] daemonize=yes live-port=tcp://0.0.0.0:4567 disallow-clear=yes
The relay daemon uses different output path patterns depending on:
Its configuration.
See the “Daemon configuration” section above.
The recording session configuration of the connected peer.
The LTTng session daemon (see lttng-sessiond(8)) version of the connected peer.
Consider the following variables:
BASE
Base output directory: $LTTNG_HOME/lttng-traces
($LTTNG_HOME
defaults to $HOME
) or the argument of the --output
option.
HOSTNAME
Hostname of the connected peer.
SESSION
Recording session name.
DATETIME
Unique recording session date/time.
TRACEDIR
Custom trace directory path (TRACEDIR
part of the argument of the
--set-url
option of the lttng-create(1) command, if
any).
SESSIONDV
The version of the LTTng session daemon of the connected peer.
The relay daemon output path patterns are:
--group-output-by-host
option (hostname grouping)
BASE
/HOSTNAME
/SESSION
-DATETIME
BASE
/HOSTNAME
/TRACEDIR
--group-output-by-session
option (recording session grouping)
SESSIONDV
is at least 2.4
BASE
/SESSION
/HOSTNAME
-DATETIME
Defaults to the hostname grouping pattern:
BASE
/HOSTNAME
/SESSION
-DATETIME
SESSIONDV
is at least 2.4
BASE
/SESSION
/HOSTNAME
-DATETIME
/TRACEDIR
Defaults to the hostname grouping pattern:
BASE
/HOSTNAME
/TRACEDIR
The argument of the --control-port
=URL
,
--data-port
=URL
, and --live-port
=URL
options is an
URL.
The format of URL
is:
tcp://(HOST
|IPADDR
):PORT
with:
HOST
| IPADDR
)
Binding hostname or IP address.
IPv6 address must be enclosed in square brackets ([
and ]
);
see RFC 2732.
PORT
TCP port.
-b
, --background
Start as a Unix daemon, but keep file descriptors (console) open.
With this option, lttng-relayd
ensures the daemon is listening
to incoming connections before it exits.
Use the --daemonize
option instead to close the file descriptors.
-f
PATH
, --config
=PATH
Configure the daemon using the INI configuration file PATH
in
addition to the default configuration files and the command-line
options.
See the “Daemon configuration” section above.
-d
, --daemonize
Start as a Unix daemon and close file descriptors (console).
With this option, lttng-relayd
ensures the daemon is listening
to incoming connections before it exits.
Use the --background
option instead to keep the file descriptors
open.
-x
, --disallow-clear
Disallow clearing operations (see lttng-clear(1)).
See also the LTTNG_RELAYD_DISALLOW_CLEAR
environment variable.
--fd-pool-size
=SIZE
Set the size of the file descriptor pool to SIZE
file descriptors.
SIZE
is the maximum number of file descriptors that the relay daemon
may keep open simultaneously.
Default: the soft RLIMIT_NOFILE
resource limit of the process (see
getrlimit(2)).
-g
GROUP
, --group
=GROUP
Set the Unix tracing group to GROUP
instead of tracing
.
This option is only meaningful when the root
Unix user starts
lttng-relayd
.
Members of the Unix tracing group may connect to the health check socket of the relay daemon.
See also the LTTNG_RELAYD_HEALTH
environment variable.
-w
DIR
, --working-directory
=DIR
Set the working directory of the processes the relay daemon creates
to DIR
.
See also the LTTNG_RELAYD_WORKING_DIRECTORY
environment variable.
-v
, --verbose
Increase verbosity.
Specify this option up to three times to get more levels of verbosity.
See the “Output directory” section above to learn more.
-p
, --group-output-by-host
Group the written trace directories by hostname.
As of LTTng 2.13, this is the default output grouping strategy, but this may change in the future.
-s
, --group-output-by-session
Group the written trace directories by recording session name instead of by hostname.
-o
DIR
, --output
=DIR
Set the base output directory of the written trace directories to
DIR
.
See the “URL format” section above to learn more about
the syntax of the URL
argument of the following options.
-C
URL
, --control-port
=URL
Listen to control data on URL URL
.
Default:
tcp://0.0.0.0:5342
.
-D
URL
, --data-port
=URL
Listen to trace data on URL URL
.
Default:
tcp://0.0.0.0:5343
.
-L
URL
, --live-port
=URL
Listen to LTTng live connections on URL URL
.
Default:
tcp://localhost:5344
.
-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.
-V
, --version
Show version and quit.
Success
Error
Fatal error
LTTNG_ABORT_ON_ERROR
Set to 1
to abort the process after the first error is
encountered.
LTTNG_NETWORK_SOCKET_TIMEOUT
Socket connection, receive, and send timeout (milliseconds).
Set to 0
or -1
to set an infinite timeout (default).
LTTNG_RELAYD_DISALLOW_CLEAR
Set to 1
to disallow clearing operations (see lttng-clear(1)).
The --disallow-clear
option overrides this environment variable.
LTTNG_RELAYD_HEALTH
Path to the health check socket of the relay daemon.
LTTNG_RELAYD_TCP_KEEP_ALIVE
Set to 1
to enable TCP keep-alive.
The TCP keep-alive mechanism allows the detection of dead peers (lttng-sessiond(8)) in cases of unclean termination (for example, a hard reset) of a peer.
Supported on Linux and Solaris only. The default behaviour of the TCP keep-alive mechanism is OS-specific.
Search for tcp_keepalive
in tcp(7) to learn more.
LTTNG_RELAYD_TCP_KEEP_ALIVE_ABORT_THRESHOLD
The time threshold (seconds) to abort a TCP connection after the keep-alive probing mechanism has failed.
Set to 0
or -1
to use the value chosen by the operating system
(default).
Supported on Solaris 11 only.
Search for tcp_keepalive_abort_threshold
in tcp(7) to learn more.
LTTNG_RELAYD_TCP_KEEP_ALIVE_IDLE_TIME
Number of seconds a connection needs to be idle before TCP begins sending out keep-alive probes.
Set to 0
or -1
to use the value chosen by the operating system
(default).
Supported on Linux and Solaris 11 only.
On Solaris 11, the accepted values are -1
, 0
, and 10
to
864000
.
Search for tcp_keepalive_time
and tcp_keepalive_interval
in tcp(7) on Solaris 11 to learn more.
LTTNG_RELAYD_TCP_KEEP_ALIVE_MAX_PROBE_COUNT
Maximum number of TCP keep-alive probes to send before giving up and killing the connection if no response is obtained from the other end.
Set to 0
or -1
to use the value chosen by the operating system
(default).
Supported on Linux only.
Search for tcp_keepalive_probes
in tcp(7) to learn more.
LTTNG_RELAYD_TCP_KEEP_ALIVE_PROBE_INTERVAL
Number of seconds between TCP keep-alive probes.
Set to 0
or -1
to use the value chosen by the operating system
(default).
Supported on Linux only.
Search for tcp_keepalive_intvl
in tcp(7) to learn more.
LTTNG_RELAYD_WORKING_DIRECTORY
Working directory of the processes the relay daemon creates.
The --working-directory
option overrides this environment
variable.
$LTTNG_HOME/.lttng
Unix user’s LTTng runtime and configuration directory.
$LTTNG_HOME/lttng-traces
Default base output directory of LTTng traces.
Override this path with the --output
option.
Note:$LTTNG_HOME
defaults to $HOME
.
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.