'\" t
.\" Title: lttng-add-context
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 14 June 2021
.\" Manual: LTTng Manual
.\" Source: LTTng 2.13.11
.\" Language: English
.\"
.TH "LTTNG\-ADD\-CONTEXT" "1" "14 June 2021" "LTTng 2\&.13\&.11" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
lttng-add-context \- Add context fields to be recorded by LTTng
.SH "SYNOPSIS"
.sp
Add context fields to be recorded to the event records of one or more channels:
.sp
.nf
\fBlttng\fR [\fIGENERAL OPTIONS\fR] \fBadd\-context\fR
(\fB--kernel\fR | \fB--userspace\fR | \fB--jul\fR | \fB--log4j\fR)
[\fB--session\fR=\fISESSION\fR] [\fB--channel\fR=\fICHANNEL\fR]
\fB--type\fR=\fITYPE\fR [\fB--type\fR=\fITYPE\fR]\&...
.fi
.sp
List the available context field types:
.sp
.nf
\fBlttng\fR [\fIGENERAL OPTIONS\fR] \fBadd\-context\fR \fB--list\fR
.fi
.SH "DESCRIPTION"
.sp
The \fBlttng add-context\fR command can:
.PP
Without the \fB--list\fR option
.RS 4
Add one or more context fields to be recorded by LTTng to the event records of:
.PP
With the \fB--session\fR=\fISESSION\fR option
.RS 4
The recording session named
\fISESSION\fR\&.
.RE
.PP
Without the \fB--session\fR option
.RS 4
The current recording session (see
\fBlttng-concepts\fR(7)
to learn more about the current recording session)\&.
.RE
.PP
With the \fB--channel\fR=\fICHANNEL\fR
.RS 4
The channel named
\fICHANNEL\fR\&.
.RE
.PP
Without the \fB--channel\fR option
.RS 4
\fBAll\fR
the channels of the selected recording session\&.
.RE
.RE
.PP
With the \fB--list\fR option
.RS 4
List the available context field types\&.
.RE
.sp
See \fBlttng-concepts\fR(7) to learn more about recording sessions and channels\&.
.sp
Repeat the \fB--type\fR=\fITYPE\fR option to add more than one context field to be recorded\&. \fITYPE\fR is one of:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
A statically\-known, or built\-in context field named\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
A perf counter name:
.PP
Per\-CPU
.RS 4
Prefix:
\fBperf:cpu:\fR
.sp
Only available with the
\fB--kernel\fR
option\&.
.RE
.PP
Per\-thread
.RS 4
Prefix:
\fBperf:thread:\fR
.sp
Only available with the
\fB--userspace\fR,
\fB--jul\fR, or
\fB--log4j\fR
option\&.
.RE
.sp
Add Performance Monitoring Unit (PMU) counter context fields by raw ID with the
\fBperf:cpu:raw:r\fR\fIN\fR\fB:\fR\fINAME\fR
(\fB--kernel\fR
option) or
\fBperf:thread:raw:r\fR\fIN\fR\fB:\fR\fINAME\fR
(\fB--userspace\fR,
\fB--jul\fR, or
\fB--log4j\fR
option) types, with:
.PP
\fIN\fR
.RS 4
A hexadecimal event descriptor which follows the
\fBperf-record\fR(1)
format: a concatenation of the event number and umask value which the manufacturer of the processor provides\&.
.sp
The possible values for this part are processor\-specific\&.
.RE
.PP
\fINAME\fR
.RS 4
Custom name to identify the counter\&.
.RE
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
An LTTng application\-specific context field name:
.sp
.if n \{\
.RS 4
.\}
.nf
$app\&.\fIPROVIDER\fR:\fITYPE\fR
.fi
.if n \{\
.RE
.\}
+
\fIPROVIDER\fR:: Provider name\&.
.PP
\fITYPE\fR
.RS 4
Context type name\&.
.RE
.sp
Only available with the
\fB--jul\fR
and
\fB--log4j\fR
options\&.
.RE
.if n \{\
.sp
.\}
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBImportant\fR
.ps -1
.br
.RS 4
.sp
Make sure to \fBsingle\-quote\fR \fITYPE\fR when you run the \fBadd-context\fR command from a shell, as \fB$\fR is a special character for variable substitution in most shells\&.
.sp .5v
.RE
.if n \{\
.sp
.\}
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.RS 4
.sp
As of LTTng\ \&2\&.13\&.11, 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 \fBlttng-start\fR(1)) at least once\&.
.sp .5v
.RE
.sp
See the \(lqEXAMPLES\(rq section below for usage examples\&.
.SH "OPTIONS"
.sp
See \fBlttng\fR(1) for \fIGENERAL OPTIONS\fR\&.
.SS "Tracing domain"
.sp
One of:
.PP
\fB-j\fR, \fB--jul\fR
.RS 4
Add context fields to be recorded to the event records of one or more channels of the
\fBjava.util.logging\fR
(JUL) tracing domain\&.
.RE
.PP
\fB-k\fR, \fB--kernel\fR
.RS 4
Add context fields to be recorded to the event records of one or more channels of the Linux kernel tracing domain\&.
.RE
.PP
\fB-l\fR, \fB--log4j\fR
.RS 4
Add context fields to be recorded to the event records of one or more channels of the Apache log4j tracing domain\&.
.RE
.PP
\fB-u\fR, \fB--userspace\fR
.RS 4
Add context fields to be recorded to the event records of one or more channels of the user space tracing domain\&.
.RE
.SS "Recording target"
.PP
\fB-c\fR \fICHANNEL\fR, \fB--channel\fR=\fICHANNEL\fR
.RS 4
Add context fields to be recorded to the event records of a channel named
\fICHANNEL\fR
instead of all the channels of the selected recording session\&.
.RE
.PP
\fB-s\fR \fISESSION\fR, \fB--session\fR=\fISESSION\fR
.RS 4
Add context fields to be recorded to the event records of one or more channels of the recording session named
\fISESSION\fR
instead of the current recording session\&.
.RE
.SS "Context field type"
.PP
\fB--list\fR
.RS 4
List the available context field types\&.
.sp
You may NOT use this option with the
\fB--channel\fR,
\fB--session\fR, or
\fB--type\fR
options\&.
.RE
.PP
\fB-t\fR \fITYPE\fR, \fB--type\fR=\fITYPE\fR
.RS 4
Add a context field having the type
\fITYPE\fR
to be recorded\&.
.sp
Repeat this option to add more than one context field\&.
.RE
.SS "Program information"
.PP
\fB-h\fR, \fB--help\fR
.RS 4
Show help\&.
.sp
This option attempts to launch
\fB/usr/bin/man\fR
to view this manual page\&. Override the manual pager path with the
\fBLTTNG_MAN_BIN_PATH\fR
environment variable\&.
.RE
.PP
\fB--list-options\fR
.RS 4
List available command options and quit\&.
.RE
.SH "EXIT STATUS"
.PP
\fB0\fR
.RS 4
Success
.RE
.PP
\fB1\fR
.RS 4
Command error
.RE
.PP
\fB2\fR
.RS 4
Undefined command
.RE
.PP
\fB3\fR
.RS 4
Fatal error
.RE
.PP
\fB4\fR
.RS 4
Command warning (something went wrong during the command)
.RE
.SH "ENVIRONMENT"
.PP
\fBLTTNG_ABORT_ON_ERROR\fR
.RS 4
Set to
\fB1\fR
to abort the process after the first error is encountered\&.
.RE
.PP
\fBLTTNG_HOME\fR
.RS 4
Path to the LTTng home directory\&.
.sp
Defaults to
\fB$HOME\fR\&.
.sp
Useful when the Unix user running the commands has a non\-writable home directory\&.
.RE
.PP
\fBLTTNG_MAN_BIN_PATH\fR
.RS 4
Absolute path to the manual pager to use to read the LTTng command\-line help (with
\fBlttng-help\fR(1)
or with the
\fB--help\fR
option) instead of
\fB/usr/bin/man\fR\&.
.RE
.PP
\fBLTTNG_SESSION_CONFIG_XSD_PATH\fR
.RS 4
Path to the directory containing the
\fBsession.xsd\fR
recording session configuration XML schema\&.
.RE
.PP
\fBLTTNG_SESSIOND_PATH\fR
.RS 4
Absolute path to the LTTng session daemon binary (see
\fBlttng-sessiond\fR(8)) to spawn from the
\fBlttng-create\fR(1)
command\&.
.sp
The
\fB--sessiond-path\fR
general option overrides this environment variable\&.
.RE
.SH "FILES"
.PP
\fB$LTTNG_HOME/.lttngrc\fR
.RS 4
Unix user\(cqs LTTng runtime configuration\&.
.sp
This is where LTTng stores the name of the Unix user\(cqs current recording session between executions of
\fBlttng\fR(1)\&.
\fBlttng-create\fR(1)
and
\fBlttng-set-session\fR(1)
set the current recording session\&.
.RE
.PP
\fB$LTTNG_HOME/lttng-traces\fR
.RS 4
Default output directory of LTTng traces in local and snapshot modes\&.
.sp
Override this path with the
\fB--output\fR
option of the
\fBlttng-create\fR(1)
command\&.
.RE
.PP
\fB$LTTNG_HOME/.lttng\fR
.RS 4
Unix user\(cqs LTTng runtime and configuration directory\&.
.RE
.PP
\fB$LTTNG_HOME/.lttng/sessions\fR
.RS 4
Default directory containing the Unix user\(cqs saved recording session configurations (see
\fBlttng-save\fR(1)
and
\fBlttng-load\fR(1))\&.
.RE
.PP
\fB/etc/lttng/sessions\fR
.RS 4
Directory containing the system\-wide saved recording session configurations (see
\fBlttng-save\fR(1)
and
\fBlttng-load\fR(1))\&.
.RE
.if n \{\
.sp
.\}
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.RS 4
.sp
\fB$LTTNG_HOME\fR defaults to the value of the \fBHOME\fR environment variable\&.
.sp .5v
.RE
.SH "EXAMPLES"
.PP
\fBExample\ \&1.\ \&List the available context field types\&.\fR
.RS 4
.sp
See the \fB--list\fR option\&.
.sp
.if n \{\
.RS 4
.\}
.nf
$ lttng add\-context \-\-list
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBExample\ \&2.\ \&Add a single statically\-known context field to be recorded to all the Linux kernel channels of the current recording session\&.\fR
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
$ lttng add\-context \-\-kernel \-\-type=pid
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBExample\ \&3.\ \&Add three statically\-known context fields to be recorded to a specific user space channel of a specific recording session\&.\fR
.RS 4
.sp
See the \fB--session\fR and \fB--channel\fR options\&.
.sp
.if n \{\
.RS 4
.\}
.nf
$ lttng add\-context \-\-userspace \-\-session=my\-session \e
\-\-channel=my\-channel \e
\-\-type=vpid \-\-type=procname \-\-type=ip
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBExample\ \&4.\ \&Add a perf counter context field to be recorded to a specific Linux kernel channel of the current recording session\&.\fR
.RS 4
.sp
See the \fB--channel\fR option\&.
.sp
.if n \{\
.RS 4
.\}
.nf
$ lttng add\-context \-\-kernel \-\-channel=my\-channel \e
\-\-type=perf:cpu:cache\-misses
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBExample\ \&5.\ \&Add an LTTng application\-specific context field to be recorded to all the JUL channels of the current recording session\&.\fR
.RS 4
.sp
.if n \{\
.RS 4
.\}
.nf
$ lttng add\-context \-\-jul \-\-type=\*(Aq$app\&.my_server:user_cnt\*(Aq
.fi
.if n \{\
.RE
.\}
.RE
.SH "RESOURCES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
LTTng project website
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
LTTng documentation
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
LTTng bug tracker
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Git repositories
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
GitHub organization
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Continuous integration
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Mailing list
for support and development:
\fBlttng-dev@lists.lttng.org\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
IRC channel :
\fB#lttng\fR
on
\fBirc.oftc.net\fR
.RE
.SH "COPYRIGHT"
.sp
This program is part of the LTTng\-tools project\&.
.sp
LTTng\-tools is distributed under the GNU General Public License version\ \&2 \&. See the \fBLICENSE\fR file for details\&.
.SH "THANKS"
.sp
Special thanks to Michel Dagenais and the DORSAL laboratory at \('Ecole Polytechnique de Montr\('eal for the LTTng journey\&.
.sp
Also thanks to the Ericsson teams working on tracing which helped us greatly with detailed bug reports and unusual test cases\&.
.SH "SEE ALSO"
.sp
\fBlttng\fR(1), \fBlttng-enable-channel\fR(1), \fBlttng-concepts\fR(7)