lttng-add-context - Man Page

Add context fields to be recorded by LTTng

Synopsis

Add context fields to be recorded to the event records of one or more event record channels:

lttng [GENERAL OPTIONS] add-context
      (--kernel | --userspace | --jul | --log4j | --log4j2)
      [--session=SESSION] [--channel=CHANNEL]
      --type=TYPE [--type=TYPE]​...

List the available context field types:

lttng [GENERAL OPTIONS] add-context --list

Description

The lttng add-context command can:

Without the --list option

Add one or more context fields to be recorded by LTTng to the event records of:

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)​.

With the --channel=CHANNEL

The event record channel named CHANNEL​.

Without the --channel option

All the event record channels of the selected recording session​.

With the --list option

List the available context field types​.

See lttng-concepts(7) to learn more about recording sessions and event record channels​.

Repeat the --type=TYPE option to add more than one context field to be recorded​. TYPE is one of:

  • A perf counter name:
Per-CPU

Prefix: perf:cpu:

Only available with the --kernel option​.

Per-thread

Prefix: perf:thread:

Only available with the --userspace, --jul, --log4j, or --log4j2 option​.

Add Performance Monitoring Unit (PMU) counter context fields by raw ID with the perf:cpu:raw:rN:NAME (--kernel option) or perf:thread:raw:rN:NAME (--userspace, --jul, --log4j, or --log4j2 option) types, with:

N

A hexadecimal event descriptor which follows the 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 part are processor-specific​.

NAME

Custom name to identify the counter​.

  • An LTTng application-specific context field name:

    $app​.PROVIDER:TYPE

    + PROVIDER:: Provider name​.

TYPE

Context type name​.

Only available with the --jul, --log4j, and --log4j2 options​.

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​.

Note

As of LTTng ​2​.16​.0, you may NOT add context fields to be recorded to the event records of a given event record channel once its recording session has been started (see lttng-start(1)) at least once​.

See the “Examples” section below for usage examples​.

Options

See lttng(1) for GENERAL OPTIONS​.

Tracing domain

One of:

-j,  --jul

Add context fields to be recorded to the event records of one or more event record channels of the java.util.logging (JUL) tracing domain​.

-k,  --kernel

Add context fields to be recorded to the event records of one or more event record channels of the Linux kernel tracing domain​.

-l,  --log4j

Add context fields to be recorded to the event records of one or more event record channels of the Apache log4j ​1​.x tracing domain​.

--log4j2

Add context fields to be recorded to the event records of one or more event record channels of the Apache Log4j ​2 tracing domain​.

-u,  --userspace

Add context fields to be recorded to the event records of one or more event record channels of the user space tracing domain​.

Recording target

-c CHANNEL, --channel=CHANNEL

Add context fields to be recorded to the event records of an event record channel named CHANNEL instead of all the event record channels of the selected recording session​.

-s SESSION, --session=SESSION

Add context fields to be recorded to the event records of one or more event record channels of the recording session named SESSION instead of the current recording session​.

Context field type

--list

List the available context field types​.

You may NOT use this option with the --channel, --session, or --type options​.

-t TYPE, --type=TYPE

Add a context field having the type TYPE to be recorded​.

Repeat this option to add more than one context field​.

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

0

Success

1

Command error

2

Undefined command

3

Fatal error

4

Command warning (something went wrong during the command)

Environment

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

$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

Example ​1. ​List the available context field types​.

See the --list option​.

$ lttng add-context --list

Example ​2. ​Add a single statically-known context field to be recorded to all the Linux kernel event record channels of the current recording session​.

$ lttng add-context --kernel --type=pid

Example ​3. ​Add three statically-known context fields to be recorded to a specific user space event record channel of a specific recording session​.

See the --session and --channel options​.

$ lttng add-context --userspace --session=my-session \
                    --channel=my-channel \
                    --type=vpid --type=procname --type=ip

Example ​4. ​Add a perf counter context field to be recorded to a specific Linux kernel event record channel of the current recording session​.

See the --channel option​.

$ lttng add-context --kernel --channel=my-channel \
                    --type=perf:cpu:cache-misses

Example ​5. ​Add an LTTng application-specific context field to be recorded to all the JUL event record channels of the current recording session​.

$ lttng add-context --jul --type='$app​.my_server:user_cnt'

Resources

Thanks

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

lttng(1), lttng-enable-channel(1), lttng-concepts(7)

Referenced By

babeltrace2-filter.lttng-utils.debug-info(7), lttng(1), lttng-add-trigger(1), lttng-concepts(7), lttng-enable-event(1), lttng-event-rule(7), lttng-ust(3).

20 March 2026 LTTng 2.16.0 LTTng Manual