1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
|
lttng-track(1)
==============
:revdate: 14 June 2021
NAME
----
lttng-track - Allow specific processes to record LTTng events
SYNOPSIS
--------
Allow specific processes to record Linux kernel events:
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel [option:--session='SESSION']
(option:--pid=PID[,PID]... | option:--vpid=VPID[,VPID]... |
option:--uid=UID[,UID]... | option:--vuid=VUSER[,VUSER]... |
option:--gid=GID[,GID]... | option:--vgid=VGROUP[,VGROUP]...)...
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel [option:--session='SESSION']
option:--all (option:--pid | option:--vpid | option:--uid | option:--vuid | option:--gid | option:--vgid)...
Allow specific processes to record user space events:
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace [option:--session='SESSION']
(option:--vpid=VPID[,VPID]... | option:--vuid=VUSER[,VUSER]... |
option:--vgid=VGROUP[,VGROUP]...)...
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace [option:--session='SESSION']
option:--all (option:--vpid | option:--vgid | option:--vuid)...
DESCRIPTION
-----------
The `lttng track` command allows one or more processes to record LTTng
events based on their attributes within:
With the option:--session='SESSION' option::
The recording session named 'SESSION'.
Without the option:--session option::
The current recording session (see man:lttng-concepts(7) to learn
more about the current recording session).
See man: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 option:--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 option:--userspace option::
+
* VPID
* VUID
* VGID
When an event{nbsp}__E__ satisfies all the other explicit and implicit
conditions of an event rule{nbsp}__ER__, __ER__ matches{nbsp}__E__ if
the attributes of the process for which LTTng creates{nbsp}__E__ are
*all* part of the inclusion sets of the recording session and domain
of{nbsp}__ER__.
By default, on recording session creation (see man: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{nbsp}__IS__ contains all the possible values
(option:--all option), then using the `track` command to add one or more
values{nbsp}__V__ to{nbsp}__IS__:
. Removes all the values from{nbsp}__IS__.
+
This effectively makes{nbsp}__IS__ empty.
. Adds{nbsp}__V__ to{nbsp}__IS__.
Example: with the PID inclusion set, you can record all the system calls
of a given process:
[role="term"]
----
$ lttng enable-event --kernel --all --syscall
$ lttng track --kernel --pid=2345
$ lttng start
----
See the ``<<examples,EXAMPLES>>'' section below for usage examples.
Remove values from an inclusion set with the man: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.
. Initial inclusion set:
+
-------------------------------
[0] [1] [2] [3] [4] [5] [6] [7]
-------------------------------
. Command:
+
[role="term"]
----
$ lttng track --kernel --pid=3,6,7
----
+
Inclusion set is now:
+
-------------------------------
[ ] [ ] [ ] [3] [ ] [ ] [6] [7]
-------------------------------
. Command:
+
[role="term"]
----
$ lttng untrack --kernel --pid=7
----
+
Inclusion set is now:
+
-------------------------------
[ ] [ ] [ ] [3] [ ] [ ] [6] [ ]
-------------------------------
. Command:
+
[role="term"]
----
$ lttng track --kernel --pid=1,5
----
+
Inclusion set is now:
+
-------------------------------
[ ] [1] [ ] [3] [ ] [5] [6] [ ]
-------------------------------
Remove values from an inclusion set with the man:lttng-untrack(1)
command.
include::common-lttng-cmd-options-head.txt[]
Tracing domain
~~~~~~~~~~~~~~
One of:
option:-k, option:--kernel::
Add values to one or more Linux kernel inclusion sets.
option:-u, option:--userspace::
Add values to one or more user space inclusion sets.
Recording target
~~~~~~~~~~~~~~~~
option:-s 'SESSION', option:--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
~~~~~~~~~~~~~~~~~~~~~~~
option:-p ['PID'[,'PID']...], option:--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 man:pid_namespaces(7)).
+
Only available with option:--kernel option.
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 man:pid_namespaces(7)).
option:--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 man:getuid(3)) of a process as seen
from the root user namespace (see man:user_namespaces(7)).
* A user name.
+
The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
the user name resolution on addition to the user ID inclusion set.
--
+
Only available with option:--kernel option.
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 man:getuid(3)) of a process as seen
from the user namespace (see man:user_namespaces(7)).
* A user name.
+
The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
the user name resolution on addition to the virtual user ID inclusion
set.
--
option:--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 man:getgid(3)) of a process as seen from the
root user namespace (see man:user_namespaces(7)).
* A group name.
+
The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
the group name resolution on addition to the group ID inclusion set.
--
+
Only available with option:--kernel option.
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 man:getgid(3)) of a process as seen
from the user namespace (see man:user_namespaces(7)).
* A group name.
+
The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
the group name resolution on addition to the virtual group ID inclusion
set.
--
Inclusion set operation
~~~~~~~~~~~~~~~~~~~~~~~
option:-a, option:--all::
With one or more empty option:--pid, option:--vpid, option:--uid,
option:--vuid, option:--gid, and option:--vgid options: add *all*
the possible values to the selected inclusion sets.
include::common-lttng-cmd-help-options.txt[]
include::common-lttng-cmd-after-options.txt[]
[[examples]]
EXAMPLES
--------
.Add the PIDs 1728 and 3775 to the Linux kernel process ID inclusion set of the current recording session.
====
See the option:--pid option.
[role="term"]
----
$ lttng track --kernel --pid=1728,3775
----
====
.Add the ID of a specific user to the user space virtual user ID inclusion set of a specific recording session.
====
See the option:--vuid and option:--session options.
[role="term"]
----
$ lttng track --userspace --session=my-session --vuid=http
----
====
.Add all the possible group IDs to the Linux kernel group ID inclusion set of the current recording session.
====
See the option:--all and option:--gid options.
[role="term"]
----
$ lttng track --kernel --all --gid
----
====
include::common-footer.txt[]
SEE ALSO
--------
man:lttng(1),
man:lttng-untrack(1),
man:lttng-concepts(7)
|