LTTNG-SNAPSHOT(1) | LTTng Manual | LTTNG-SNAPSHOT(1) |
lttng-snapshot - Take a snapshot of an LTTng recording session
Take a recording session snapshot:
lttng [GENERAL OPTIONS] snapshot record [--max-size=SIZE]
[--name=NAME] [--session=SESSION]
[--ctrl-url=URL --data-url=URL | URL]
Add a snapshot output to a recording session:
lttng [GENERAL OPTIONS] snapshot add-output [--max-size=SIZE]
[--name=NAME] [--session=SESSION]
(--ctrl-url=URL --data-url=URL | URL)
Show the snapshot output of a recording session:
lttng [GENERAL OPTIONS] snapshot list-output [--session=SESSION]
Remove the snapshot output from a recording session:
lttng [GENERAL OPTIONS] snapshot del-output [--session=SESSION] 1
The lttng snapshot command can take a snapshot of, add or remove a snapshot output, and show the snapshot output of:
With the --session=SESSION option
Without the --session option
See lttng-concepts(7) to learn more about recording sessions.
A snapshot is a dump of the current sub-buffers of all the channels of the selected recording session.
When LTTng takes a snapshot, it sends the sub-buffer dump of the selected recording session to the local file system or over the network to a listening relay daemon (lttng-relayd(8)). See the “Snapshot output” section below to learn more.
When LTTng takes a snapshot, it does NOT clear the sub-buffers of the selected recording session. In other words, different snapshots of the selected recording session can contain the same event records.
You must have created the selected recording session in snapshot mode (see the --snapshot option of the lttng-create(1) command as well as lttng-concepts(7) to learn more about recording session modes) to use the snapshot command.
A snapshot-session trigger action can also take a recording session snapshot (see lttng-add-trigger(1)).
See the “EXAMPLES” section below for usage examples.
If you want, instead, to keep all the trace data, but divide it into archived chunks which are then, like snapshots, ready to be processed, see the recording session rotation feature in lttng-concepts(7). Trace chunk archives do NOT overlap like snapshots can.
Note
Before you take a snapshot on a system with a high event throughput, the LTTng project recommends that you first run the lttng-stop(1) command. Otherwise, the snapshot could contain “holes”, the result of the tracers overwriting unconsumed trace packets during the snapshot operation.
After LTTng writes the snapshot trace data, you can restart the recording session with the lttng-start(1) command.
When you take a recording session snapshot with the record action, LTTng writes the snapshot trace files to:
If you specify the URL non-option argument or the --ctrl-url and --data-url options
See lttng-create(1) for the format of URL.
Otherwise
Add a snapshot output to a recording session with the add-output action. As of LTTng 2.13.9, you may only add one snapshot output to a given recording session.
When you create a snapshot mode recording session with the --snapshot option of the lttng-create(1) command, and without its --no-output option, the create command automatically adds a snapshot output named snapshot-1 to the created recording session:
With its --output, --set-url, --ctrl-url, or --data-url options
Otherwise
Show the current snapshot output of a recording session with the list-output action.
Remove the snapshot output of a recording session with the del-output action.
For both the record and add-output actions:
NAME becomes part of the snapshot trace file names which LTTng sends to this output.
Set the maximum total size of all the snapshot trace files LTTng writes with the --max-size option.
See lttng(1) for GENERAL OPTIONS.
-s SESSION, --session=SESSION
See the “Snapshot output” section above.
-C URL, --ctrl-url=URL
You must also use the --data-url option.
See lttng-create(1) for the format of URL.
-D URL, --data-url=URL
You must also use the --ctrl-url option.
See lttng-create(1) for the format of URL.
-m SIZE, --max-size=SIZE
The k (KiB), M (MiB), and G (GiB) suffixes are supported.
-n NAME, --name=NAME
-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
0
1
2
3
4
LTTNG_ABORT_ON_ERROR
LTTNG_HOME
Defaults to $HOME.
Useful when the Unix user running the commands has a non-writable home directory.
LTTNG_MAN_BIN_PATH
LTTNG_SESSION_CONFIG_XSD_PATH
LTTNG_SESSIOND_PATH
The --sessiond-path general option overrides this environment variable.
$LTTNG_HOME/.lttngrc
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
Override this path with the --output option of the lttng-create(1) command.
$LTTNG_HOME/.lttng
$LTTNG_HOME/.lttng/sessions
/etc/lttng/sessions
Note
$LTTNG_HOME defaults to the value of the HOME environment variable.
Example 1. Take a snapshot of the current recording session, sending the trace files to its snapshot output.
$ lttng snapshot record
Example 2. Take a snapshot of a specific recording session, giving it a custom name.
See the --session and --name options.
$ lttng snapshot record --session=my-session --name=SNAP
Example 3. Take a snapshot of the current recording session, sending the trace files to a custom location.
See the “Output directory” section of lttng-relayd(8) to understand where the relay daemon to connect to (3.96.87.215) writes the received traces.
$ lttng snapshot record net://3.96.87.215
Example 4. Replace the snapshot output of a specific recording session with a local file system path.
See the --session option.
$ lttng snapshot del-output --session=monk 1 $ lttng snapshot add-output --session=monk \
file:///path/to/snapshots
Example 5. Take a snapshot of the current recording session, making sure its size is not over 4 MiB.
See the --max-size option.
$ lttng snapshot record --max-size=4M
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 |