table of contents
LTTNG-TRACK(1) | LTTng Manual | LTTNG-TRACK(1) |
NAME¶
lttng-track - Allow specific processes to record LTTng events
SYNOPSIS¶
Allow specific processes to record Linux kernel events:
lttng [GENERAL OPTIONS] track --kernel [--session=SESSION]
(--pid=PID[,PID]... | --vpid=VPID[,VPID]... |
--uid=UID[,UID]... | --vuid=VUSER[,VUSER]... |
--gid=GID[,GID]... | --vgid=VGROUP[,VGROUP]...)...
lttng [GENERAL OPTIONS] track --kernel [--session=SESSION]
--all (--pid | --vpid | --uid | --vuid | --gid | --vgid)...
Allow specific processes to record user space events:
lttng [GENERAL OPTIONS] track --userspace [--session=SESSION]
(--vpid=VPID[,VPID]... | --vuid=VUSER[,VUSER]... |
--vgid=VGROUP[,VGROUP]...)...
lttng [GENERAL OPTIONS] track --userspace [--session=SESSION]
--all (--vpid | --vgid | --vuid)...
DESCRIPTION¶
The lttng track command allows one or more processes to record LTTng events based on their attributes within:
With the --session=SESSION option
Without the --session option
See lttng-concepts(7) to learn more about recording sessions and recording event rules.
The track command adds values to inclusion sets of process attributes. The available inclusion sets are, for a given recording session:
With the --kernel option
This is the PID as seen by the application.
This is the UID as seen by the application.
This is the GID as seen by the application.
With the --userspace option
When an event E satisfies all the other explicit and implicit conditions of an event rule ER, ER matches E if the attributes of the process for which LTTng creates E are all part of the inclusion sets of the recording session and domain of ER.
By default, on recording session creation (see lttng-create(1)), all processes are allowed to record events. In other words, all the inclusion sets of the recording session contain all the possible process attribute values.
If a given inclusion set IS contains all the possible values (--all option), then using the track command to add one or more values V to IS:
This effectively makes IS empty.
Example: with the PID inclusion set, you can record all the system calls of a given process:
$ lttng enable-event --kernel --all --syscall $ lttng track --kernel --pid=2345 $ lttng start
See the “EXAMPLES” section below for usage examples.
Remove values from an inclusion set with the lttng-untrack(1) command.
Inclusion set example¶
This example operates on the Linux kernel process ID (PID) inclusion set of the current recording session to show how an inclusion set works.
Assume the maximum system PID is 7 for this example.
[0] [1] [2] [3] [4] [5] [6] [7]
$ lttng track --kernel --pid=3,6,7
Inclusion set is now:
[ ] [ ] [ ] [3] [ ] [ ] [6] [7]
$ lttng untrack --kernel --pid=7
Inclusion set is now:
[ ] [ ] [ ] [3] [ ] [ ] [6] [ ]
$ lttng track --kernel --pid=1,5
Inclusion set is now:
[ ] [1] [ ] [3] [ ] [5] [6] [ ]
Remove values from an inclusion set with the lttng-untrack(1) command.
OPTIONS¶
See lttng(1) for GENERAL OPTIONS.
Tracing domain¶
One of:
-k, --kernel
-u, --userspace
Recording target¶
-s SESSION, --session=SESSION
Inclusion set selection¶
-p [PID[,PID]...], --pid[=PID[,PID]...]
PID is the process ID attribute of a process as seen from the root PID namespace (see pid_namespaces(7)).
Only available with --kernel option.
--vpid[=VPID[,VPID]...]
VPID is the virtual process ID attribute of a process as seen from the PID namespace of the process (see pid_namespaces(7)).
--uid[=USER[,USER]...]
USER is either:
The connected LTTng session daemon (see lttng-sessiond(8)) performs the user name resolution on addition to the user ID inclusion set.
Only available with --kernel option.
--vuid[=VUSER[,VUSER]...]
VUSER is either:
The connected LTTng session daemon (see lttng-sessiond(8)) performs the user name resolution on addition to the virtual user ID inclusion set.
--gid[=GROUP[,GROUP]...]
GROUP is either:
The connected LTTng session daemon (see lttng-sessiond(8)) performs the group name resolution on addition to the group ID inclusion set.
Only available with --kernel option.
--vgid[=VGROUP[,VGROUP]...]
VGROUP is either:
The connected LTTng session daemon (see lttng-sessiond(8)) performs the group name resolution on addition to the virtual group ID inclusion set.
Inclusion set operation¶
-a, --all
Program information¶
-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
EXIT STATUS¶
0
1
2
3
4
ENVIRONMENT¶
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.
FILES¶
$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.
EXAMPLES¶
Example 1. Add the PIDs 1728 and 3775 to the Linux kernel process ID inclusion set of the current recording session.
See the --pid option.
$ lttng track --kernel --pid=1728,3775
Example 2. Add the ID of a specific user to the user space virtual user ID inclusion set of a specific recording session.
See the --vuid and --session options.
$ lttng track --userspace --session=my-session --vuid=http
Example 3. Add all the possible group IDs to the Linux kernel group ID inclusion set of the current recording session.
See the --all and --gid options.
$ lttng track --kernel --all --gid
RESOURCES¶
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¶
14 June 2021 | LTTng 2.13.14 |