LTTNG-RELAYD(8) | LTTng Manual | LTTNG-RELAYD(8) |
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 <https://lttng.org/> 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:
$LTTNG_HOME defaults to $HOME.
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:
Key
Value
The selected command-line option accepts an argument
The selected command-line option is a switch
true, yes, on
false, no, off
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:
See the “Daemon configuration” section above.
Consider the following variables:
BASE
HOSTNAME
SESSION
DATETIME
TRACEDIR
SESSIONDV
The relay daemon output path patterns are:
With the --group-output-by-host option (hostname grouping)
Without a custom trace directory
BASE/HOSTNAME/SESSION-DATETIME
With a custom trace directory
BASE/HOSTNAME/TRACEDIR
With the --group-output-by-session option (recording session grouping)
Without a custom trace directory
SESSIONDV is at least 2.4
BASE/SESSION/HOSTNAME-DATETIME
Otherwise
BASE/HOSTNAME/SESSION-DATETIME
With a custom trace directory
SESSIONDV is at least 2.4
BASE/SESSION/HOSTNAME-DATETIME/TRACEDIR
Otherwise
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)
IPv6 address must be enclosed in square brackets ([ and ]); see RFC 2732 <https://www.ietf.org/rfc/rfc2732.txt>.
PORT
-b, --background
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
See the “Daemon configuration” section above.
-d, --daemonize
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
See also the LTTNG_RELAYD_DISALLOW_CLEAR environment variable.
--fd-pool-size=SIZE
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
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
See also the LTTNG_RELAYD_WORKING_DIRECTORY environment variable.
-v, --verbose
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
As of LTTng 2.13.9, this is the default output grouping strategy, but this may change in the future.
-s, --group-output-by-session
-o DIR, --output=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
Default: tcp://0.0.0.0:5342.
-D URL, --data-port=URL
Default: tcp://0.0.0.0:5343.
-L URL, --live-port=URL
Default: tcp://localhost:5344.
-h, --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
-V, --version
0
1
3
LTTNG_ABORT_ON_ERROR
LTTNG_NETWORK_SOCKET_TIMEOUT
Set to 0 or -1 to set an infinite timeout (default).
LTTNG_RELAYD_DISALLOW_CLEAR
The --disallow-clear option overrides this environment variable.
LTTNG_RELAYD_HEALTH
LTTNG_RELAYD_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
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
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
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
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
The --working-directory option overrides this environment variable.
$LTTNG_HOME/.lttng
$LTTNG_HOME/lttng-traces
Override this path with the --output option.
Note
$LTTNG_HOME defaults to $HOME.
This program is part of the LTTng-tools project.
LTTng-tools is distributed under the GNU General Public License version 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html>. See the LICENSE <https://github.com/lttng/lttng-tools/blob/master/LICENSE> file for details.
Special thanks to Michel Dagenais and the DORSAL laboratory <http://www.dorsal.polymtl.ca/> 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.
14 June 2021 | LTTng 2.13.9 |