# lttng-relayd

## NAME



           lttng-relayd - LTTng 2 relay daemon
    


## SYNOPSIS



           **lttng-relayd**[**--background** | **--daemonize**]
                        [**--control-port** =_URL_] [**--data-port** =_URL_] [**--live-port** =_URL_]
                        [**--output** =_PATH_] [**-v** | **-vv** | **-vvv**]
    


## 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://localhost: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**
           By default, the relay daemon writes the traces to:
    
               $LTTNG_HOME/lttng-traces/_HOSTNAME_ /_SESSION_ /_DOMAIN_
    
           with:
    
           _HOSTNAME_
               Remote hostname.
    
           _SESSION_
               Full session name.
    
           _DOMAIN_
               Tracing domain.
    
           You can override the default output directory prefix
           (**$LTTNG_HOME/lttng-traces**) with the **--output** option. The other
           parts depend on the remote configuration.
    
       **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.
    
           **-d** , **--daemonize**
               Start as Unix daemon, and close file descriptors (console).
               Use the **--background** option instead to keep the file
               descriptors open.
    
           **-g** _GROUP_ , **--group** =_GROUP_
               Use _GROUP_ as Unix tracing group (default: **tracing**).
    
           **-o** _PATH_ , **--output** =_PATH_
               Set base directory of written trace data to _PATH_.
    
               See the _Output directory_ section above for more information.
    
           **-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**).
    
       **Ports**
           See the _URL format_ section above for more information about the
           syntax of the following options' _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_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.
    


## FILES



           **$LTTNG_HOME/.lttng**
               User LTTng runtime and configuration directory.
    
           **$LTTNG_HOME/lttng-traces**
               Default 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**
    


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


* * *