lttng-track(1) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | ENVIRONMENT | FILES | EXAMPLES | RESOURCES | COPYRIGHT | THANKS | SEE ALSO | COLOPHON

LTTNG-TRACK(1)                 LTTng Manual                LTTNG-TRACK(1)

NAME         top

       lttng-track - Allow specific processes to record LTTng events

SYNOPSIS         top

       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         top

       The lttng track command allows one or more processes to record
       LTTng events based on their attributes within:

       With the --session=SESSION option
           The recording session named SESSION.

       Without the --session option
           The current recording session (see lttng-concepts(7) to learn
           more about the current recording session).

       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

           •   Process ID (PID).

           •   Virtual process ID (VPID).

               This is the PID as seen by the application.

           •   Unix user ID (UID).

           •   Virtual Unix user ID (VUID).

               This is the UID as seen by the application.

           •   Unix group ID (GID).

           •   Virtual Unix group ID (VGID).

               This is the GID as seen by the application.

       With the --userspace option

           •   VPID

           •   VUID

           •   VGID

       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:

        1. Removes all the values from IS.

           This effectively makes IS empty.

        2. Adds V to IS.

       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.

        1. Initial inclusion set:

               [0] [1] [2] [3] [4] [5] [6] [7]

        2. Command:

               $ lttng track --kernel --pid=3,6,7

           Inclusion set is now:

               [ ] [ ] [ ] [3] [ ] [ ] [6] [7]

        3. Command:

               $ lttng untrack --kernel --pid=7

           Inclusion set is now:

               [ ] [ ] [ ] [3] [ ] [ ] [6] [ ]

        4. Command:

               $ 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         top

       See lttng(1) for GENERAL OPTIONS.

   Tracing domain
       One of:

       -k, --kernel
           Add values to one or more Linux kernel inclusion sets.

       -u, --userspace
           Add values to one or more user space inclusion sets.

   Recording target
       -s SESSION, --session=SESSION
           Add values to one or more inclusion sets of the recording
           session named SESSION instead of the current recording
           session.

   Inclusion set selection
       -p [PID[,PID]...], --pid[=PID[,PID]...]
           For each PID argument, add PID to the process ID inclusion set
           of the selected recording session and domain.

           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]...]
           For each VPID argument, add VPID to the virtual process ID
           inclusion set of the selected recording session and domain.

           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]...]
           For each USER argument, add USER to the user ID inclusion set
           of the selected recording session and domain.

           USER is either:

           •   The real user ID (see getuid(3)) of a process as seen from
               the root user namespace (see user_namespaces(7)).

           •   A user name.

               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]...]
           For each VUSER argument, add VUSER to the virtual user ID
           inclusion set of the selected recording session and domain.

           VUSER is either:

           •   The real user ID (see getuid(3)) of a process as seen from
               the user namespace (see user_namespaces(7)).

           •   A user name.

               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]...]
           For each GROUP argument, add GROUP to the group ID inclusion
           set of the selected recording session and domain.

           GROUP is either:

           •   The real group ID (see getgid(3)) of a process as seen
               from the root user namespace (see user_namespaces(7)).

           •   A group name.

               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]...]
           For each VGROUP argument, add VGROUP to the virtual group ID
           inclusion set of the selected recording session and domain.

           VGROUP is either:

           •   The real group ID (see getgid(3)) of a process as seen
               from the user namespace (see user_namespaces(7)).

           •   A group name.

               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
           With one or more empty --pid, --vpid, --uid, --vuid, --gid,
           and --vgid options: add all the possible values to the
           selected inclusion sets.

   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         top

       0
           Success

       1
           Command error

       2
           Undefined command

       3
           Fatal error

       4
           Command warning (something went wrong during the command)

ENVIRONMENT         top

       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         top

       $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         top

       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         top

       •   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         top

       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         top

       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         top

       lttng(1), lttng-untrack(1), lttng-concepts(7)

COLOPHON         top

       This page is part of the LTTng-Tools (LTTng tools) project.
       Information about the project can be found at ⟨http://lttng.org/⟩.
       It is not known how to report bugs for this man page; if you know,
       please send a mail to man-pages@man7.org.  This page was obtained
       from the project's upstream Git repository
       ⟨https://github.com/lttng/lttng-tools.git⟩ on 2026-08-04.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2026-07-30.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

LTTng 2.15.1                   14 June 2021                LTTNG-TRACK(1)

Pages that refer to this page: lttng(1)lttng-create(1)lttng-enable-event(1)lttng-untrack(1)lttng-concepts(7)