1LTTNG-ENABLE-EVENT(1) LTTng Manual LTTNG-ENABLE-EVENT(1)
2
3
4
6 lttng-enable-event - Create or enable LTTng recording event rules
7
9 Create or enable one or more recording event rules to match Linux
10 kernel tracepoint or system call events:
11
12 lttng [GENERAL OPTIONS] enable-event --kernel [--tracepoint | --syscall]
13 (--all | NAME[,NAME]...) [--filter=EXPR]
14 [--session=SESSION] [--channel=CHANNEL]
15
16 Create or enable a recording event rule to match Linux kernel events
17 created from a dynamic instrumentation point:
18
19 lttng [GENERAL OPTIONS] enable-event --kernel
20 (--probe=LOC | --function=LOC | --userspace-probe=LOC) RECORDNAME
21 [--session=SESSION] [--channel=CHANNEL]
22
23 Create or enable one or more recording event rules to match user space
24 tracepoint events:
25
26 lttng [GENERAL OPTIONS] enable-event --userspace [--tracepoint]
27 (--all | NAME[,NAME]...) [--exclude=XNAME[,XNAME]...]
28 [--loglevel=LOGLEVEL | --loglevel-only=LOGLEVEL] [--filter=EXPR]
29 [--session=SESSION] [--channel=CHANNEL]
30
31 Create or enable one or more recording event rules to match Java/Python
32 logging events:
33
34 lttng [GENERAL OPTIONS] enable-event (--jul | --log4j | --python)
35 [--tracepoint] (--all | NAME[,NAME]...)
36 [--loglevel=LOGLEVEL | --loglevel-only=LOGLEVEL] [--filter=EXPR]
37 [--session=SESSION] [--channel=CHANNEL]
38
40 The lttng enable-event command does one of:
41
42 • Create one or more recording event rules.
43
44 • Enable one or more disabled recording event rules.
45
46 See the “Enable a disabled recording event rule” section below.
47
48 See lttng-concepts(7) to learn more about instrumentation points,
49 events, recording event rules, and event records.
50
51 The recording event rule(s) to create or enable belong to:
52
53 With the --session=SESSION option
54 The recording session named SESSION.
55
56 Without the --session option
57 The current recording session (see lttng-concepts(7) to learn more
58 about the current recording session).
59
60 With the --channel=CHANNEL option
61 The channel named CHANNEL.
62
63 Without the --channel option
64 The channel named channel0.
65
66 If there’s already a channel for the selected recording session and
67 domain which isn’t named channel0, the enable-event command fails.
68 Otherwise, it automatically creates it.
69
70 See the “EXAMPLES” section below for usage examples.
71
72 List the recording event rules of a specific recording session and/or
73 channel with the lttng-list(1) and lttng-status(1) commands.
74
75 Disable an enabled recording event rule with the lttng-disable-event(1)
76 command.
77
78 Overview of recording event rule conditions
79 For LTTng to emit and record an event E, E must satisfy all the
80 conditions of a recording event rule ER, that is:
81
82 Explicit conditions
83 You set the following conditions when you create or enable ER with
84 the enable-event command:
85
86 • The instrumentation point type from which LTTng creates E has a
87 specific type.
88
89 See the “Instrumentation point type condition” section below.
90
91 • A pattern matches the name of E while another pattern doesn’t.
92
93 See the “Event name condition” section below.
94
95 • The log level of the instrumentation point from which LTTng
96 creates E is at least as severe as some value, or is exactly
97 some value.
98
99 See the “Instrumentation point log level condition” section
100 below.
101
102 • The fields of the payload of E and the current context fields
103 satisfy a filter expression.
104
105 See the “Event payload and context filter condition” section
106 below.
107
108 Implicit conditions
109
110 • ER itself is enabled.
111
112 A recording event rule is enabled on creation.
113
114 Enable a disabled recording event rule with the enable-event
115 command.
116
117 • The channel to which ER is attached is enabled.
118
119 A channel is enabled on creation.
120
121 Enable a disabled channel with the lttng-enable-channel(1)
122 command.
123
124 • The recording session of ER is active (started).
125
126 A recording session is inactive (stopped) on creation.
127
128 Start an inactive recording session with the lttng-start(1)
129 command.
130
131 • The process for which LTTng creates E is allowed to record
132 events.
133
134 All processes are allowed to record events on recording session
135 creation.
136
137 Use the lttng-track(1) and lttng-untrack(1) commands to select
138 which processes are allowed to record events based on specific
139 process attributes.
140
141 The dedicated command-line options of most conditions are optional: if
142 you don’t specify the option, the associated condition is always
143 satisfied.
144
145 Instrumentation point type condition
146 An event E satisfies the instrumentation point type condition of a
147 recording event rule if the instrumentation point from which LTTng
148 creates E is:
149
150 For the Linux kernel tracing domain (--kernel option)
151
152 With the --tracepoint option or without any other instrumentation
153 point type option
154 An LTTng kernel tracepoint, that is, a statically defined point
155 in the source code of the kernel image or of a kernel module
156 with LTTng kernel tracer macros.
157
158 As of LTTng 2.13.4, this is the default instrumentation point
159 type of the Linux kernel tracing domain, but this may change in
160 the future.
161
162 List the available Linux kernel tracepoints with lttng list
163 --kernel. See lttng-list(1) to learn more.
164
165 With the --syscall option
166 The entry and exit of a Linux kernel system call.
167
168 List the available Linux kernel system call instrumentation
169 points with lttng list --kernel --syscall. See lttng-list(1) to
170 learn more.
171
172 With the --probe option
173 A Linux kprobe, that is, a single probe dynamically placed in
174 the compiled kernel code.
175
176 The argument of the --probe option is the location of the
177 kprobe to insert, either a symbol or a memory address, while
178 RECORDNAME is the name of the record of E (see the “Event
179 record name” section below).
180
181 The payload of a Linux kprobe event is empty.
182
183 With the --userspace-probe option
184 A Linux user space probe, that is, a single probe dynamically
185 placed at the entry of a compiled user space
186 application/library function through the kernel.
187
188 The argument of the --userspace-probe option is the location of
189 the user space probe to insert, one of:
190
191 • A path and symbol (ELF method).
192
193 • A path, provider name, and probe name (SystemTap User-level
194 Statically Defined Tracing (USDT) method; a DTrace-style
195 marker).
196
197 As of LTTng 2.13.4, LTTng only supports USDT probes which
198 are NOT reference-counted.
199
200 RECORDNAME is the name of the record of E (see the “Event
201 record name” section below).
202
203 The payload of a Linux user space probe event is empty.
204
205 With the --function option
206 A Linux kretprobe, that is, two probes dynamically placed at
207 the entry and exit of a function in the compiled kernel code.
208
209 The argument of the --function option is the location of the
210 Linux kretprobe to insert, either a symbol or a memory address,
211 while RECORDNAME is the name of the record of E (see the “Event
212 record name” section below).
213
214 The payload of a Linux kretprobe event is empty.
215
216 For the user space tracing domain (--userspace option)
217
218 With or without the --tracepoint option
219 An LTTng user space tracepoint, that is, a statically defined
220 point in the source code of a C/C++ application/library with
221 LTTng user space tracer macros.
222
223 As of LTTng 2.13.4, this is the default and sole
224 instrumentation point type of the user space tracing domain,
225 but this may change in the future.
226
227 List the available user space tracepoints with lttng list
228 --userspace. See lttng-list(1) to learn more.
229
230 For the java.util.logging (--jul option), Apache log4j (--log4j
231 option), and Python (--python option) tracing domains
232
233 With or without the --tracepoint option
234 A logging statement.
235
236 As of LTTng 2.13.4, this is the default and sole
237 instrumentation point type of the java.util.logging, Apache
238 log4j, and Python tracing domains, but this may change in the
239 future.
240
241 List the available Java and Python loggers with lttng list
242 --jul, lttng list --log4j, and lttng list --python. See lttng-
243 list(1) to learn more.
244
245 Event name condition
246 An event E satisfies the event name condition of a recording event
247 rule ER if the two following statements are true:
248
249 • You specify the --all option or, depending on the instrumentation
250 type condition (see the “Instrumentation point type condition”
251 section above) of ER, NAME matches:
252
253 LTTng tracepoint
254 The full name of the tracepoint from which LTTng creates E.
255
256 Note that the full name of a user space tracepoint is
257 PROVIDER:NAME, where PROVIDER is the tracepoint provider name
258 and NAME is the tracepoint name.
259
260 Logging statement
261 The name of the Java or Python logger from which LTTng
262 creates E.
263
264 Linux system call
265 The name of the system call, without any sys_ prefix, from
266 which LTTng creates E.
267
268 • You don’t specify the --exclude=XNAME[,XNAME]... option or,
269 depending on the instrumentation type condition of ER, none of the
270 XNAME arguments matches the full name of the user space tracepoint
271 from which LTTng creates E.
272
273 The --exclude option is only available with the --userspace option.
274
275 This condition is only meaningful for the LTTng tracepoint, logging
276 statement, and Linux system call instrumentation point types: it’s
277 always satisfied for the other types.
278
279 In all cases, NAME and XNAME are globbing patterns: the * character
280 means “match anything”. To match a literal * character, use \*. To
281 match a literal , character, use \,.
282
283 Important
284 Make sure to single-quote NAME and XNAME when they contain the *
285 character and when you run the enable-event command from a shell.
286
287 With the LTTng tracepoint, logging statement, and Linux system call
288 instrumentation point types, the enable-event command creates or
289 enables one independent recording event rule per NAME argument
290 (non-option, comma-separated). With the --all option, the enable-event
291 command creates or enables a single recording event rule.
292
293 Instrumentation point log level condition
294 An event E satisfies the instrumentation point log level condition of a
295 recording event rule if either:
296
297 • The --loglevel and --loglevel-only options are missing.
298
299 • The log level of the LTTng user space tracepoint or logging
300 statement which creates E is:
301
302 With the --loglevel=LOGLEVEL option
303 At least as severe as LOGLEVEL.
304
305 With the --loglevel-only=LOGLEVEL option
306 Exactly LOGLEVEL.
307
308 This condition is only meaningful for the LTTng user space tracepoint
309 and logging statement instrumentation point types: it’s always
310 satisfied for other types.
311
312 The available values of LOGLEVEL are, depending on the tracing domain,
313 from the most to the least severe:
314
315 User space (--userspace option)
316
317 • EMERG (0)
318
319 • ALERT (1)
320
321 • CRIT (2)
322
323 • ERR (3)
324
325 • WARNING (4)
326
327 • NOTICE (5)
328
329 • INFO (6)
330
331 • DEBUG_SYSTEM (7)
332
333 • DEBUG_PROGRAM (8)
334
335 • DEBUG_PROCESS (9)
336
337 • DEBUG_MODULE (10)
338
339 • DEBUG_UNIT (11)
340
341 • DEBUG_FUNCTION (12)
342
343 • DEBUG_LINE (13)
344
345 • DEBUG (14)
346
347 java.util.logging (--jul option)
348
349 • OFF (INT32_MAX)
350
351 • SEVERE (1000)
352
353 • WARNING (900)
354
355 • INFO (800)
356
357 • CONFIG (700)
358
359 • FINE (500)
360
361 • FINER (400)
362
363 • FINEST (300)
364
365 • ALL (INT32_MIN)
366
367 Apache log4j (--log4j option)
368
369 • OFF (INT32_MAX)
370
371 • FATAL (50000)
372
373 • ERROR (40000)
374
375 • WARN (30000)
376
377 • INFO (20000)
378
379 • DEBUG (10000)
380
381 • TRACE (5000)
382
383 • ALL (INT32_MIN)
384
385 Python (--python option)
386
387 • CRITICAL (50)
388
389 • ERROR (40)
390
391 • WARNING (30)
392
393 • INFO (20)
394
395 • DEBUG (10)
396
397 • NOTSET (0)
398
399 Event payload and context filter condition
400 An event E satisfies the event payload and context filter condition of
401 a recording event rule if the --filter=EXPR option is missing or if
402 EXPR is true.
403
404 This condition is only meaningful for the LTTng tracepoint and Linux
405 system call instrumentation point types: it’s always satisfied for
406 other types.
407
408 EXPR can contain references to the payload fields of E and to the
409 current context fields.
410
411 Important
412 Make sure to single-quote EXPR when you run the enable-event
413 command from a shell, as filter expressions typically include
414 characters having a special meaning for most shells.
415
416 The expected syntax of EXPR is similar to the syntax of a C language
417 conditional expression (an expression which an if statement can
418 evaluate), but there are a few differences:
419
420 • A NAME expression identifies an event payload field named NAME (a
421 C identifier).
422
423 Use the C language dot and square bracket notations to access
424 nested structure and array/sequence fields. You can only use a
425 constant, positive integer number within square brackets. If the
426 index is out of bounds, EXPR is false.
427
428 The value of an enumeration field is an integer.
429
430 When a field expression doesn’t exist, EXPR is false.
431
432 Examples: my_field, target_cpu, seq[7], msg.user[1].data[2][17].
433
434 • A $ctx.TYPE expression identifies the statically-known context
435 field having the type TYPE (a C identifier).
436
437 List the available statically-known context field names with the
438 lttng-add-context(1) command.
439
440 When a field expression doesn’t exist, EXPR is false.
441
442 Examples: $ctx.prio, $ctx.preemptible, $ctx.perf:cpu:stalled-
443 cycles-frontend.
444
445 • A $app.PROVIDER:TYPE expression identifies the application-specific
446 context field having the type TYPE (a C identifier) from the
447 provider PROVIDER (a C identifier).
448
449 When a field expression doesn’t exist, EXPR is false.
450
451 Example: $app.server:cur_user.
452
453 • Compare strings, either string fields or string literals
454 (double-quoted), with the == and != operators.
455
456 When comparing to a string literal, the * character means “match
457 anything”. To match a literal * character, use \*.
458
459 Examples: my_field == "user34", my_field == my_other_field,
460 my_field == "192.168.*".
461
462 • The precedence table of the operators which are supported in EXPR
463 is as follows. In this table, the highest precedence is 1:
464
465 ┌───────────┬──────────┬─────────────────┬───────────────┐
466 │Precedence │ Operator │ Description │ Associativity │
467 ├───────────┼──────────┼─────────────────┼───────────────┤
468 │1 │ - │ Unary minus │ Right-to-left │
469 ├───────────┼──────────┼─────────────────┼───────────────┤
470 │1 │ + │ Unary plus │ Right-to-left │
471 ├───────────┼──────────┼─────────────────┼───────────────┤
472 │1 │ ! │ Logical NOT │ Right-to-left │
473 ├───────────┼──────────┼─────────────────┼───────────────┤
474 │1 │ ~ │ Bitwise NOT │ Right-to-left │
475 ├───────────┼──────────┼─────────────────┼───────────────┤
476 │2 │ << │ Bitwise left │ Left-to-right │
477 │ │ │ shift │ │
478 ├───────────┼──────────┼─────────────────┼───────────────┤
479 │2 │ >> │ Bitwise right │ Left-to-right │
480 │ │ │ shift │ │
481 ├───────────┼──────────┼─────────────────┼───────────────┤
482 │3 │ & │ Bitwise AND │ Left-to-right │
483 ├───────────┼──────────┼─────────────────┼───────────────┤
484 │4 │ ^ │ Bitwise XOR │ Left-to-right │
485 ├───────────┼──────────┼─────────────────┼───────────────┤
486 │5 │ | │ Bitwise OR │ Left-to-right │
487 ├───────────┼──────────┼─────────────────┼───────────────┤
488 │6 │ < │ Less than │ Left-to-right │
489 ├───────────┼──────────┼─────────────────┼───────────────┤
490 │6 │ <= │ Less than or │ Left-to-right │
491 │ │ │ equal to │ │
492 ├───────────┼──────────┼─────────────────┼───────────────┤
493 │6 │ > │ Greater than │ Left-to-right │
494 ├───────────┼──────────┼─────────────────┼───────────────┤
495 │6 │ >= │ Greater than or │ Left-to-right │
496 │ │ │ equal to │ │
497 ├───────────┼──────────┼─────────────────┼───────────────┤
498 │7 │ == │ Equal to │ Left-to-right │
499 ├───────────┼──────────┼─────────────────┼───────────────┤
500 │7 │ != │ Not equal to │ Left-to-right │
501 ├───────────┼──────────┼─────────────────┼───────────────┤
502 │8 │ && │ Logical AND │ Left-to-right │
503 ├───────────┼──────────┼─────────────────┼───────────────┤
504 │9 │ || │ Logical OR │ Left-to-right │
505 └───────────┴──────────┴─────────────────┴───────────────┘
506 Parentheses are supported to bypass the default order.
507
508 Important
509 Unlike the C language, the bitwise AND and OR operators (& and
510 |) in EXPR take precedence over relational operators (<, <=, >,
511 >=, ==, and !=). This means the expression 2 & 2 == 2 is true
512 while the equivalent C expression is false.
513 The arithmetic operators are NOT supported.
514
515 LTTng first casts all integer constants and fields to signed 64-bit
516 integers. The representation of negative integers is two’s
517 complement. This means that, for example, the signed 8-bit integer
518 field 0xff (-1) becomes 0xffffffffffffffff (still -1) once casted.
519
520 Before a bitwise operator is applied, LTTng casts all its operands
521 to unsigned 64-bit integers, and then casts the result back to a
522 signed 64-bit integer. For the bitwise NOT operator, it’s the
523 equivalent of this C expression:
524
525 (int64_t) ~((uint64_t) val)
526
527 For the binary bitwise operators, it’s the equivalent of those
528 C expressions:
529
530 (int64_t) ((uint64_t) lhs >> (uint64_t) rhs)
531 (int64_t) ((uint64_t) lhs << (uint64_t) rhs)
532 (int64_t) ((uint64_t) lhs & (uint64_t) rhs)
533 (int64_t) ((uint64_t) lhs ^ (uint64_t) rhs)
534 (int64_t) ((uint64_t) lhs | (uint64_t) rhs)
535
536 If the right-hand side of a bitwise shift operator (<< and >>) is
537 not in the [0, 63] range, then EXPR is false.
538
539 Note
540 Use the lttng-track(1) and lttng-untrack(1) commands to allow or
541 disallow processes to record LTTng events based on their attributes
542 instead of using equivalent statically-known context fields in EXPR
543 like $ctx.pid.
544
545 The former method is much more efficient.
546
547 EXPR examples:
548
549 msg_id == 23 && size >= 2048
550
551 $ctx.procname == "lttng*" && (!flag || poel < 34)
552
553 $app.my_provider:my_context == 17.34e9 || some_enum >= 14
554
555 $ctx.cpu_id == 2 && filename != "*.log"
556
557 eax_reg & 0xff7 == 0x240 && x[4] >> 12 <= 0x1234
558
559 Event record name
560 When LTTng records an event E, the resulting event record has a name
561 which depends on the instrumentation point type condition (see the
562 “Instrumentation point type condition” section above) of the recording
563 event rule which matched E:
564
565 LTTng tracepoint (--kernel/--userspace and --tracepoint options)
566 Full name of the tracepoint from which LTTng creates E.
567
568 Note that the full name of a user space tracepoint is
569 PROVIDER:NAME, where PROVIDER is the tracepoint provider name and
570 NAME is the tracepoint name.
571
572 java.util.logging logging statement (--jul and --tracepoint options)
573 lttng_jul:event
574
575 Such an event record has a string field logger_name which contains
576 the name of the java.util.logging logger from which LTTng
577 creates E.
578
579 Apache log4j logging statement (--log4j and --tracepoint options)
580 lttng_log4j:event
581
582 Such an event record has a string field logger_name which contains
583 the name of the Apache log4j logger from which LTTng creates E.
584
585 Python logging statement (--python and --tracepoint options)
586 lttng_python:event
587
588 Such an event record has a string field logger_name which contains
589 the name of the Python logger from which LTTng creates E.
590
591 Linux system call (--kernel and --syscall options)
592
593 Entry
594 syscall_entry_NAME, where NAME is the name of the system call
595 from which LTTng creates E, without any sys_ prefix.
596
597 Exit
598 syscall_exit_NAME, where NAME is the name of the system call
599 from which LTTng creates E, without any sys_ prefix.
600
601 Linux kprobe (--kernel and --probe options), Linux user space probe
602 (--kernel and --userspace-probe options)
603 RECORDNAME (first non-option argument).
604
605 Linux kretprobe (--kernel and --function options)
606
607 Entry
608 RECORDNAME_entry
609
610 Exit
611 RECORDNAME_exit
612
613 Enable a disabled recording event rule
614 The enable-event command can enable a disabled recording event rule, as
615 listed in the output of the lttng-list(1) command.
616
617 You may enable a disabled recording event rule regardless of the
618 activity (started or stopped) of its recording session (see lttng-
619 start(1) and lttng-stop(1)).
620
621 To enable a disabled recording event rule, run the enable-event command
622 with the exact same options and arguments that you used to create it.
623 In particular, with the --filter=EXPR option, EXPR must be the exact
624 same string as the one you used on creation.
625
627 See lttng(1) for GENERAL OPTIONS.
628
629 Tracing domain
630 One of:
631
632 -j, --jul
633 Create or enable recording event rules in the java.util.logging
634 (JUL) tracing domain.
635
636 -k, --kernel
637 Create or enable recording event rules in the Linux kernel tracing
638 domain.
639
640 -l, --log4j
641 Create or enable recording event rules in the Apache log4j tracing
642 domain.
643
644 -p, --python
645 Create or enable recording event rules in the Python tracing
646 domain.
647
648 -u, --userspace
649 Create or enable recording event rules in the user space tracing
650 domain.
651
652 Recording target
653 -c CHANNEL, --channel=CHANNEL
654 Create or enable recording event rules attached to the channel
655 named CHANNEL instead of channel0.
656
657 -s SESSION, --session=SESSION
658 Create or enable recording event rules in the recording session
659 named SESSION instead of the current recording session.
660
661 Instrumentation point type condition
662 See the “Instrumentation point type condition” section above.
663
664 At most one of:
665
666 --function=LOC
667 Only match Linux kretprobe events.
668
669 Only available with the --kernel option.
670
671 LOC is one of:
672
673 • A function address (0x hexadecimal prefix supported).
674
675 • A function symbol name.
676
677 • A function symbol name and an offset (SYMBOL+OFFSET format).
678
679 You must specify the event record name with RECORDNAME. See the
680 “Event record name” section above to learn more.
681
682 --probe=LOC
683 Only match Linux kprobe events.
684
685 Only available with the --kernel option.
686
687 LOC is one of:
688
689 • An address (0x hexadecimal prefix supported).
690
691 • A symbol name.
692
693 • A symbol name and an offset (SYMBOL+OFFSET format).
694
695 You must specify the event record name with RECORDNAME. See the
696 “Event record name” section above to learn more.
697
698 --userspace-probe=LOC
699 Only match Linux user space probe events.
700
701 Only available with the --kernel option.
702
703 LOC is one of:
704
705 [elf:]PATH:SYMBOL
706 Probe an available symbol within a user space application or
707 library.
708
709 PATH
710 Application or library path.
711
712 One of:
713
714 • An absolute path.
715
716 • A relative path.
717
718 • The name of an application as found in the directories
719 listed in the PATH environment variable.
720
721 SYMBOL
722 Symbol name of the function of which to instrument the
723 entry.
724
725 SYMBOL can be any defined code symbol in the output of the
726 nm(1) command, including with its --dynamic option, which
727 lists dynamic symbols.
728
729 As of LTTng 2.13.4, not specifying elf: is equivalent to
730 specifying it, but this default may change in the future.
731
732 Examples:
733
734 • --userspace-probe=/usr/lib/libc.so.6:malloc
735
736 • --userspace-probe=./myapp:createUser
737
738 • --userspace-probe=elf:httpd:ap_run_open_htaccess
739
740 sdt:PATH:PROVIDER:NAME
741 Use a SystemTap User-level Statically Defined Tracing (USDT)
742 probe within a user space application or library.
743
744 PATH
745 Application or library path.
746
747 This can be:
748
749 • An absolute path.
750
751 • A relative path.
752
753 • The name of an application as found in the directories
754 listed in the PATH environment variable.
755
756 PROVIDER, NAME
757 USDT provider and probe names.
758
759 For example, with the following USDT probe:
760
761 DTRACE_PROBE2("server", "accept_request",
762 request_id, ip_addr);
763
764 The provider/probe name pair is server:accept_request.
765
766 Example: --userspace-
767 probe=sdt:./build/server:server:accept_request
768
769 You must specify the event record name with RECORDNAME. See the
770 “Event record name” section above to learn more.
771
772 --syscall
773 Only match Linux system call events.
774
775 Only available with the --kernel option.
776
777 --tracepoint
778 Only match:
779
780 With the --kernel or --userspace option
781 LTTng tracepoint events.
782
783 With the --jul, --log4j, or --python option
784 Logging events.
785
786 With the --kernel, not specifying any of the instrumentation point type
787 options is equivalent to specifying the --tracepoint option, but this
788 default may change in the future.
789
790 With the --userspace, --jul, --log4j, and --python options, not
791 specifying the --tracepoint option is equivalent to specifying it, but
792 this default may change in the future.
793
794 Event name condition
795 See the “Event name condition” section above.
796
797 -a, --all
798 Equivalent to a single NAME argument (LTTng tracepoint or logger
799 name) set to * (match anything).
800
801 You may NOT use this option with a NAME argument.
802
803 -x XNAME[,XNAME]..., --exclude=XNAME[,XNAME]...
804 Only match events of which none of the XNAME arguments matches the
805 full name of the LTTng user space tracepoint.
806
807 Only available with the --userspace option.
808
809 XNAME is a globbing pattern: the * character means “match
810 anything”. To match a literal * character, use \*. To match a
811 literal , character, use \,.
812
813 Instrumentation point log level condition
814 See the “Instrumentation point log level condition” section above.
815
816 At most one of:
817
818 --loglevel=LOGLEVEL
819 Only match events of which the log level of the LTTng tracepoint or
820 logging statement is at least as severe as LOGLEVEL.
821
822 --loglevel-only=LOGLEVEL
823 Only match events of which the log level of the LTTng tracepoint or
824 logging statement is exactly LOGLEVEL.
825
826 The instrumentation point log level options above are NOT available
827 with the --kernel option.
828
829 Event payload and context filter condition
830 See the “Event payload and context filter condition” section above.
831
832 -f EXPR, --filter=EXPR
833 Only match events of which EXPR, which can contain references to
834 event payload and current context fields, is true.
835
836 This option is only available with the --tracepoint or --syscall
837 option.
838
839 Program information
840 -h, --help
841 Show help.
842
843 This option attempts to launch /usr/bin/man to view this manual
844 page. Override the manual pager path with the LTTNG_MAN_BIN_PATH
845 environment variable.
846
847 --list-options
848 List available command options and quit.
849
851 0
852 Success
853
854 1
855 Command error
856
857 2
858 Undefined command
859
860 3
861 Fatal error
862
863 4
864 Command warning (something went wrong during the command)
865
867 LTTNG_ABORT_ON_ERROR
868 Set to 1 to abort the process after the first error is encountered.
869
870 LTTNG_HOME
871 Path to the LTTng home directory.
872
873 Defaults to $HOME.
874
875 Useful when the Unix user running the commands has a non-writable
876 home directory.
877
878 LTTNG_MAN_BIN_PATH
879 Absolute path to the manual pager to use to read the LTTng
880 command-line help (with lttng-help(1) or with the --help option)
881 instead of /usr/bin/man.
882
883 LTTNG_SESSION_CONFIG_XSD_PATH
884 Path to the directory containing the session.xsd recording session
885 configuration XML schema.
886
887 LTTNG_SESSIOND_PATH
888 Absolute path to the LTTng session daemon binary (see lttng-
889 sessiond(8)) to spawn from the lttng-create(1) command.
890
891 The --sessiond-path general option overrides this environment
892 variable.
893
895 $LTTNG_HOME/.lttngrc
896 Unix user’s LTTng runtime configuration.
897
898 This is where LTTng stores the name of the Unix user’s current
899 recording session between executions of lttng(1). lttng-create(1)
900 and lttng-set-session(1) set the current recording session.
901
902 $LTTNG_HOME/lttng-traces
903 Default output directory of LTTng traces in local and snapshot
904 modes.
905
906 Override this path with the --output option of the lttng-create(1)
907 command.
908
909 $LTTNG_HOME/.lttng
910 Unix user’s LTTng runtime and configuration directory.
911
912 $LTTNG_HOME/.lttng/sessions
913 Default directory containing the Unix user’s saved recording
914 session configurations (see lttng-save(1) and lttng-load(1)).
915
916 /usr/local/etc/lttng/sessions
917 Directory containing the system-wide saved recording session
918 configurations (see lttng-save(1) and lttng-load(1)).
919
920 Note
921 $LTTNG_HOME defaults to the value of the HOME environment variable.
922
924 Example 1. Create a recording event rule which matches all Linux system
925 call events (current recording session, default channel).
926
927 See the --all and --syscall options.
928
929 $ lttng enable-event --kernel --all --syscall
930
931 Example 2. Create a recording event rule which matches user space
932 tracepoint events named specifically (current recording session,
933 default channel).
934
935 The recording event rule below matches all user space tracepoint
936 events of which the name starts with my_provider:msg.
937
938 $ lttng enable-event --userspace 'my_provider:msg*'
939
940 Example 3. Create three recording event rules which match Python
941 logging events named specifically (current recording session, default
942 channel).
943
944 $ lttng enable-event --python server3,ui.window,user-mgmt
945
946 Example 4. Create a recording event rule which matches Apache log4j
947 logging events with a specific log level range (current recording
948 session, specific channel).
949
950 See the --channel, --all, and --loglevel options.
951
952 $ lttng enable-event --log4j --channel=my-loggers \
953 --all --loglevel=INFO
954
955 Example 5. Create a recording event rule which matches specific Linux
956 kprobe events (current recording session, default channel).
957
958 The recording event rule below matches the entry of
959 usb_disconnect() Linux kernel function calls. The records of such
960 events are named usbd (see the “Event record name” section above).
961
962 See the --probe option.
963
964 $ lttng enable-event --kernel --probe=usb_disconnect usbd
965
966 Example 6. Create a recording event rule which matches Linux kernel
967 tracepoint events which satisfy an event payload and context filter
968 (specific recording session, default channel).
969
970 See the --session and --filter options.
971
972 $ lttng enable-event --kernel --session=my-session 'sched_*' \
973 --filter='$ctx.preemptible && comm != "systemd*"'
974
975 Example 7. Enable two Linux kernel tracepoint recording event rules
976 (current recording session, specific channel).
977
978 See the --channel option.
979
980 $ lttng enable-event --kernel --channel=tva ja,wendy
981
983 • LTTng project website <https://lttng.org>
984
985 • LTTng documentation <https://lttng.org/docs>
986
987 • LTTng bug tracker <https://bugs.lttng.org>
988
989 • Git repositories <https://git.lttng.org>
990
991 • GitHub organization <https://github.com/lttng>
992
993 • Continuous integration <https://ci.lttng.org/>
994
995 • Mailing list <https://lists.lttng.org/> for support and
996 development: lttng-dev@lists.lttng.org
997
998 • IRC channel <irc://irc.oftc.net/lttng>: #lttng on irc.oftc.net
999
1001 This program is part of the LTTng-tools project.
1002
1003 LTTng-tools is distributed under the GNU General Public License
1004 version 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html>.
1005 See the LICENSE <https://github.com/lttng/lttng-
1006 tools/blob/master/LICENSE> file for details.
1007
1009 Special thanks to Michel Dagenais and the DORSAL laboratory
1010 <http://www.dorsal.polymtl.ca/> at École Polytechnique de Montréal for
1011 the LTTng journey.
1012
1013 Also thanks to the Ericsson teams working on tracing which helped us
1014 greatly with detailed bug reports and unusual test cases.
1015
1017 lttng(1), lttng-disable-event(1), lttng-enable-channel(1), lttng-
1018 list(1), lttng-start(1), lttng-track(1), lttng-concepts(7)
1019
1020
1021
1022LTTng 2.13.4 14 June 2021 LTTNG-ENABLE-EVENT(1)