LTTNG-RELAYD(8)

NAME
lttng-relayd - LTTng 2 relay daemon

SYNOPSIS

lttng-relayd [--background | --daemonize] [--config=PATH]
             [--control-port=URL] [--data-port=URL] [--fd-pool-size=COUNT]
             [--live-port=URL] [--output=PATH]
             [-v | -vv | -vvv] [--working-directory=PATH]
             [--group-output-by-session] [--disallow-clear]

DESCRIPTION

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).

The LTTng relay daemon is responsible for receiving trace data from possibly remote LTTng session/consumer daemons and for writing it to the local file system. The relay daemon also accepts LTTng live connections from compatible viewers; this is the official approach to viewing LTTng events as they are emitted.

The relay daemon listens by default on all network interfaces to gather trace data, but only on localhost for LTTng live connections.

The relay daemon does not require any particular permissions, as long as it can write to the output directory and listen on the configured ports. If a user is within a secured network and/or has proper firewall settings, lttng-relayd can listen to LTTng live connections from all network interfaces by specifying --live-port=tcp://0.0.0.0:5344.

Once a trace has been streamed completely, the trace can be processed by any tool that can process an LTTng trace located on the local file system.

  Output directory

The relay daemon uses different output path patterns depending on:

    • Its configuration.

    • The connected peer’s tracing session configuration.

    • The connected peer’s LTTng session daemon (see lttng-sessiond(8)) version.

Consider the following variables:

BASE
    Base output directory: $LTTNG_HOME/lttng-traces or the argument of the --output option.

        Note
        $LTTNG_HOME defaults to $HOME when not explicitly set.

HOSTNAME
    Peer’s hostname.

SESSION
    Tracing session name.

DATETIME
    Unique tracing session date/time.

TRACEPATH
    Custom trace path (TRACEPATH part of the lttng-create(1) command’s --set-url option’s argument, if any).

The relay daemon output path patterns are:

Hostname grouping (without --group-output-by-session)

    Without a custom trace path

            BASE/HOSTNAME/SESSION-DATETIME

    With a custom trace path

            BASE/HOSTNAME/TRACEPATH

Tracing session grouping (with --group-output-by-session)

    Without a custom trace path

        The peer’s LTTng session daemon version is at least 2.4

                BASE/SESSION/HOSTNAME-DATETIME

        Otherwise
            Defaults to the hostname grouping pattern:

                BASE/HOSTNAME/SESSION-DATETIME

    With a custom trace path

        The peer’s LTTng session daemon version is at least 2.4

                BASE/SESSION/HOSTNAME-DATETIME/TRACEPATH

        Otherwise
            Defaults to the hostname grouping pattern:

                BASE/HOSTNAME/TRACEPATH

  URL format

The --control-port, --data-port, and --live-port options specify URLs.

The format of those URLs is:

    tcp://(HOST | IPADDR):PORT

with:

(HOST | IPADDR)
    Binding hostname or IP address (IPv6 address must be enclosed in brackets ([ and ]); see RFC 2732 <https://www.ietf.org/rfc/rfc2732.txt>).

PORT
    TCP port.

OPTIONS

  Daemon

-b, --background
    Start as Unix daemon, but keep file descriptors (console) open. Use the --daemonize option instead to close the file descriptors.

-f PATH, --config=PATH
    Load relay daemon configuration from path PATH.

-d, --daemonize
    Start as Unix daemon, and close file descriptors (console). 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.

    SIZE is the maximum number of file descriptors that may be kept opened simultaneously by the relay daemon.

    Default: the soft RLIMIT_NOFILE resource limit of the process (see getrlimit(2)).

-g GROUP, --group=GROUP
    Use GROUP as Unix tracing group (default: tracing).

-w PATH, --working-directory=PATH
    Set the working directory of the processes the relay daemon creates to PATH.

    See also the LTTNG_RELAYD_WORKING_DIRECTORY environment variable.

-v, --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).

  Output

See the Output directory section above for more information.

-p, --group-output-by-host
    Group the written trace directories by hostname (default).

-s, --group-output-by-session
    Group the written trace directories by tracing session name instead of by hostname.

-o PATH, --output=PATH
    Set the base output directory of the written trace directories to PATH.

  Ports

See the URL format section above for more information about the syntax of the following URL argument.

-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).

  Program information

-h, --help
    Show help.

-V, --version
    Show version.

ENVIRONMENT VARIABLES

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). A value of 0 or -1 uses the timeout of the operating system (default).

LTTNG_RELAYD_DISALLOW_CLEAR
    Set to 1 to disallow clearing operations (see lttng-clear(1)).

    The --disallow-clear option overrides this variable.

LTTNG_RELAYD_HEALTH
    Path to relay daemon health’s socket.

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) for more information.

LTTNG_RELAYD_TCP_KEEP_ALIVE_ABORT_THRESHOLD
    The time threshold in 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) for more information.

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 for more information.

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) for more information.

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) for more information.

LTTNG_RELAYD_WORKING_DIRECTORY
    Working directory of the processes the relay daemon creates.

    The --working-directory option overrides this variable.

FILES

$LTTNG_HOME/.lttng
    User LTTng runtime and configuration directory.

$LTTNG_HOME/lttng-traces
    Default base output directory of LTTng traces. This can be overridden with the --output option.

    Note

    $LTTNG_HOME defaults to $HOME when not explicitly set.

EXIT STATUS

0
    Success

1
    Error

3
    Fatal error

LIMITATIONS

As of this version, only the TCP protocol is supported for both control and data ports. In future versions, TCP will remain the sole available protocol for control data since those communications are low-volume and need absolute reliability; trace data could be carried over UDP.

For an unprivileged user running lttng-relayd, the maximum number of file descriptors per process is usually 1024. This limits the number of connections and opened trace files. This limit can be configured with ulimit(3).

BUGS

If you encounter any issue or usability problem, please report it on the LTTng bug tracker <https://bugs.lttng.org/projects/lttng-tools>.

RESOURCES

    • LTTng project website <https://lttng.org>

    • LTTng documentation <https://lttng.org/docs>

    • Git repositories <http://git.lttng.org>

    • GitHub organization <http://github.com/lttng>

    • Continuous integration <http://ci.lttng.org/>

    • Mailing list <http://lists.lttng.org> for support and development: lttng-dev@lists.lttng.org

    • IRC channel <irc://irc.oftc.net/lttng>: #lttng on irc.oftc.net

COPYRIGHTS

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.

THANKS

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.

SEE ALSO

lttng(1), lttng-sessiond(8), lttng-crash(1), lttng-ust(3), babeltrace2(1)