lttng-add-context(1)
====================
-:revdate: 8 April 2021
+:revdate: 14 June 2021
NAME
SYNOPSIS
--------
-Add context fields to be recorded to the LTTng event records of
-one or more channels:
+Add context fields to be recorded to the event records of one or more
+channels:
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *add-context*
DESCRIPTION
-----------
-The `lttng add-context` command adds one or more context fields to be
-recorded to the event records of a given channel, or of all the channels
-of a selected tracing session, by LTTng.
+The `lttng add-context` command can:
-See man:lttng-enable-channel(1) to learn more about LTTng channels.
+Without the option:--list option::
+ Add one or more context fields to be recorded by LTTng to the event
+ records of:
++
+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).
-When you use the `add-context` command to add context fields for a given
-channel, all the event records which LTTng writes to a sub-buffer of
-that channel contain the dynamic values of those context fields.
+With the option:--channel='CHANNEL':::
+ The channel named 'CHANNEL'.
-Without the option:--session option, the `add-context` command selects
-the current tracing session (see man:lttng-create(1) and
-man:lttng-set-session(1) to learn more about the current tracing
-session).
+Without the option:--channel option:::
+ *All* the channels of the selected recording session.
-Without the option:--channel option, LTTng adds context fields to be
-recorded to the event records of *all* the channels of the selected
-tracing session.
+With the option:--list option::
+ List the available context field types.
-Repeat the option:--type option to add more than one context field to be
-recorded.
+See man:lttng-concepts(7) to learn more about recording sessions and
+channels.
-perf counter context fields are available:
+Repeat the option:--type='TYPE' option to add more than one context
+field to be recorded. 'TYPE' is one of:
+* A statically-known, or built-in context field name.
+
+* A perf counter name:
++
+--
Per-CPU::
- Prefix: `perf:cpu:`.
+ Prefix: `perf:cpu:`
+
-Only available for Linux kernel (option:--kernel option) channels.
+Only available with the option:--kernel option.
Per-thread::
- Prefix: `perf:thread:`.
+ Prefix: `perf:thread:`
+
-Only available for user application/library (option:--userspace,
-option:--jul, and option:--log4j options) channels.
-
-Add PMU counter context fields by raw ID with the
-++perf:cpu:raw:r++__N__++:++__NAME__ (Linux kernel tracing domain) or
-++perf:thread:raw:r++__N__++:++__NAME__ (user space tracing domain)
-types, with:
-
+Only available with the option:--userspace, option:--jul, or
+option:--log4j option.
+--
++
+Add Performance Monitoring Unit (PMU) counter context fields by raw ID
+with the ++perf:cpu:raw:r++__N__++:++__NAME__ (option:--kernel option)
+or ++perf:thread:raw:r++__N__++:++__NAME__ (option:--userspace,
+option:--jul, or option:--log4j option) types, with:
++
+--
'N'::
A hexadecimal event descriptor which follows the man:perf-record(1)
format: a concatenation of the event number and umask value which
the manufacturer of the processor provides.
+
-The possible values for this field are processor-specific.
+The possible values for this part are processor-specific.
'NAME'::
- Custom name to easily recognize the counter.
-
-Add an application-specific context field with the following syntax:
+ Custom name to identify the counter.
+--
+* An LTTng application-specific context field name:
++
+--
[verse]
$app.'PROVIDER':__TYPE__
-
++
'PROVIDER'::
Provider name.
'TYPE'::
Context type name.
+--
++
+Only available with the option:--jul and option:--log4j options.
-NOTE: Make sure to **single-quote** the argument of the option:--type
-option when you run the `add-context` command from a shell, as `$` is a
-special character for variable substitution in most shells.
+IMPORTANT: Make sure to **single-quote** 'TYPE' when you run the
+`add-context` command from a shell, as `$` is a special character for
+variable substitution in most shells.
-List the available context field types with the option:--list option and
-without other arguments.
+NOTE: As of LTTng{nbsp}{lttng_version}, you may :not: add context fields
+to be recorded to the event records of a given channel once its
+recording session has been started (see man:lttng-start(1)) at least
+once.
-NOTE: As of LTTng{nbsp}{lttng_version}, you may :not: add context
-fields to be recorded to the event records of a given channel once its
-tracing session has been started (see man:lttng-start(1)) at least once.
+See the ``<<examples,EXAMPLES>>'' section below for usage examples.
-include::common-cmd-options-head.txt[]
+include::common-lttng-cmd-options-head.txt[]
Tracing domain
option:-c 'CHANNEL', option:--channel='CHANNEL'::
Add context fields to be recorded to the event records of a channel
named 'CHANNEL' instead of all the channels of the selected
- tracing session.
+ recording session.
option:-s 'SESSION', option:--session='SESSION'::
Add context fields to be recorded to the event records of one or
- more channels of the tracing session named 'SESSION' instead of the
- current tracing session.
+ more channels of the recording session named 'SESSION' instead of
+ the current recording session.
Context field type
Repeat this option to add more than one context field.
-include::common-cmd-help-options.txt[]
+include::common-lttng-cmd-help-options.txt[]
+
+
+include::common-lttng-cmd-after-options.txt[]
+
+
+[[examples]]
+EXAMPLES
+--------
+.List the available context field types.
+====
+See the option:--list option.
+
+[role="term"]
+----
+$ lttng add-context --list
+----
+====
+
+.Add a single statically-known context field to be recorded to all the Linux kernel channels of the current recording session.
+====
+[role="term"]
+----
+$ lttng add-context --kernel --type=pid
+----
+====
+
+.Add three statically-known context fields to be recorded to a specific user space channel of a specific recording session.
+====
+See the option:--session and option:--channel options.
+
+[role="term"]
+----
+$ lttng add-context --userspace --session=my-session \
+ --channel=my-channel \
+ --type=vpid --type=procname --type=ip
+----
+====
+
+.Add a perf counter context field to be recorded to a specific Linux kernel channel of the current recording session.
+====
+See the option:--channel option.
+
+[role="term"]
+----
+$ lttng add-context --kernel --channel=my-channel \
+ --type=perf:cpu:cache-misses
+----
+====
+
+.Add an LTTng application-specific context field to be recorded to all the JUL channels of the current recording session.
+====
+[role="term"]
+----
+$ lttng add-context --jul --type='$app.my_server:user_cnt'
+----
+====
-include::common-cmd-footer.txt[]
+include::common-footer.txt[]
SEE ALSO
--------
man:lttng(1),
man:lttng-enable-channel(1),
-man:lttng-set-session(1)
+man:lttng-concepts(7)