LTTNG-SAVE(1)

NAME
lttng-save - Save LTTng recording session configurations

SYNOPSIS

lttng [GENERAL OPTIONS] save [--force] [--output-path=DIR]
      [--no-triggers] [--all | SESSION]

DESCRIPTION

The lttng save command saves to files the configurations of:

With the SESSION argument
    The recording session named SESSION.

Without the SESSION argument
    Implicit --all option: all the recording sessions of the connected session daemon for your Unix user, or for all users if your Unix user is root, as listed in the output of lttng list (see lttng-list(1)).

    See the “Session daemon connection” section of lttng(1) to learn how a user application connects to a session daemon.

See lttng-concepts(7) to learn more about recording sessions.

Use the save command in conjunction with the lttng-load(1) command to save and restore the complete configurations of recording sessions.

The save command does NOT save tracing data, only the recording session parameters, including the event record channel and recording event rule configurations.

Each saved recording session configuration file also contains all the triggers (see lttng-add-trigger(1)) of the connected session daemon for your Unix user, or for all users if your Unix user is root, even those triggers which aren’t directly related to the targeted recording session(s). This is needed because, for example, an “increment map value” trigger action targets a map channel of a specific recording session, but the trigger itself is a session daemon-wide object.

The lttng-load(1) command makes the loading Unix user the owner of every loaded recording session and trigger, regardless of their original owner.

Avoid saving any trigger with the --no-triggers option. Note, however, that without saved triggers, the lttng-load(1) command won’t restore, amongst other things, the “increment map value” actions for the loaded recording session(s).

The default output directory path is $LTTNG_HOME/.lttng/sessions ($LTTNG_HOME defaults to $HOME). Override the default output directory path with the --output-path option. Each recording session configuration file is named SNAME.lttng, where SNAME is the original recording session name.

By default, the save command does NOT overwrite existing recording session configuration files: the command fails. Allow the save command to overwrite existing recording session configuration files with the --force option.

See the “EXAMPLES” section below for usage examples.

OPTIONS

See lttng(1) for GENERAL OPTIONS.

-a, --all
    Save all the recording session configurations of your Unix user, or of all users if your Unix user is root, as listed in the output of lttng-list(1), instead of the current recording session or the recording session named SESSION.

-f, --force
    Overwrite existing recording session configuration files when saving.

--no-triggers
    Do NOT save any trigger (see lttng-add-trigger(1)).

    This is the behaviour of LTTng ≤ 2.15.

    Without this option, each saved recording session configuration file also contains all the triggers of the connected session daemon for your Unix user, or for all users if your Unix user is root, even those triggers which aren’t directly related to the targeted recording session(s).

    With this option, the lttng-load(1) command won’t restore, amongst other things, the “increment map value” actions of the loaded recording session(s).

-o DIR, --output-path=DIR
    Save recording session configuration files to the directory DIR instead of $LTTNG_HOME/.lttng/sessions ($LTTNG_HOME defaults to $HOME).

  Program information

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

EXIT STATUS

0
    Success

1
    Command error

2
    Undefined command

3
    Fatal error

4
    Command warning (something went wrong during the command)

ENVIRONMENT

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_LIST_LEGACY
    Set to 1 to use the legacy output format (LTTng 2.14 and earlier) for the lttng-list(1) command instead of the modern output format.

    Note that the legacy output doesn’t show anything related to features introduced after LTTng 2.14.

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_NO_UTF_8
    Set to 1 to NOT emit multi-byte UTF-8 sequences, even if the locale claims to support it.

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_TERM_COLOR
    Controls when to emit terminal SGR codes in the output.

    The NO_COLOR environment variable overrides this.

    One of:

    auto (default)
        Only emit SGR codes when the standard output is connected to a color-capable terminal.

    always
        Always emit SGR codes.

    never
        Never emit SGR codes.

NO_COLOR
    If set and not empty, then it’s equivalent to setting LTTNG_TERM_COLOR to never.

    See NO_COLOR <https://no-color.org/> to learn more.

FILES

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

/usr/local/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.

EXAMPLES

Example 1. Save all the recording session configurations to the default output directory.

        $ lttng save

Example 2. Save a specific recording session configuration to a specific output directory.

    See the --output-path option.

        $ lttng save my-session --output-path=/path/to/sessions

Example 3. Allow LTTng to overwrite existing recording session configuration files when saving.

    See the --force option.

        $ lttng save --force

Example 4. Save the configuration of a specific recording session without saving any trigger.

    See the --no-triggers option.

        $ lttng save my-session --no-triggers

RESOURCES

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

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

    • LTTng bug tracker <https://bugs.lttng.org>

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

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

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

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

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

    • Mastodon <https://mastodon.social/@lttng>

COPYRIGHT

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-add-trigger(1), lttng-load(1), lttng-concepts(7)