[lttng-dev] [RELEASE] LTTng-Tools 2.10.0-rc1

Jérémie Galarneau jeremie.galarneau at efficios.com
Sat May 6 02:58:08 UTC 2017


Hi everyone!

Today marks the release of the first LTTng 2.10 - "KeKriek" release
candidate.

This release is named after a sour mashed golden wheat ale from
the Dunham microbrewery.

This new release introduces the following features:


--- LTTng-UST Blocking Mode ---

A long awaited "blocking" mode for LTTng-UST has been implemented.
In this mode, the tracer blocks the application at the tracing point when
buffers are full (only in "discard mode tracing") and will wait until a
user-specified timeout is reached or until enough space is available in
the tracing buffer to save the event before continuing.

This mode only applies to applications launched with the
LTTNG_UST_BLOCKING_RETRY_TIMEOUT environment
variable set to a non-zero value. See lttng-ust(3) for more
information.


--- Multiple wildcard support in event rules' instrumentation point
    names and filter strings ---

Before LTTng 2.10, you could use a wildcard at the _end_ of
instrumentation point names and filter strings when you created an
event rule:

    lttng enable-event --kernel 'sched_*'

    lttng enable-event --userspace my_app:'*' --filter='my_field == "user_*"'

Starting from LTTng 2.10, you can use the `*` wildcard character
anywhere in those strings, and not only at the end:

    lttng enable-event --kernel 'x86_*_local_timer_*' \
                       --filter='name == "*a*b*c*d*e" && count >= 23'

    lttng enable-event --userspace '*_my_org:*msg*'

You can also use more than one `*` in exclusion names:

    lttng enable-event --userspace '*_my_org:*msg*' \
                       --exclude='*recv*async,*send*async'

We remind you that a `*` wildcard character matches zero or more
characters. It has the same role as `*` in shells.

You must escape literal `*` characters with `\`. For example:

    lttng enable-event --userspace '*_my_org:\*msg*'

creates an event rule which matches user space tracepoints of which the
name is zero or more characters followed by `_my_org:*msg` (literally)
followed by zero or more characters.


--- Notification and overload API ---

A new trigger and notification API has been added to the lttng-ctl
library. This new subsystem allows you to register triggers which
will emit a notification whenever a given condition is reached.

The first conditions introduced as part of this release are buffer
usage conditions. These conditions allow you to be notified
whenever buffers a filled or emptied beyond a given level.

For instance, a client can enable the tracing of a given group of
events, and register a condition to be notified whenever buffers
are filled beyond 80% of their capacity.

Upon the reception of this notification, you can choose to disable
a certain number of events in order to lower the event tracing
bandwidth and find the subset of events with which your
system can keep up. This allows the implementation of a tracing
overload protection.


--- Embedded man pages ---

You can now embed the whole textual LTTng-tools man pages into the
executables at build time with the --enable-embedded-help configuration
option. Thanks to this option, you don't need the AsciiDoc and xmlto
tools at build time, and a manual pager at run time (/usr/bin/man for
most of us), to get access to this documentation.


The official documentation will be updated to reflect the addition of
these new features in time for the final release.

As always, please report any issue you may encounter to bugs.lttng.org
or on this mailing list.

Project website: https://lttng.org

Download:
https://lttng.org/files/lttng-tools/lttng-tools-2.10.0-rc1.tar.bz2
GPG sig:
https://lttng.org/files/lttng-tools/lttng-tools-2.10.0-rc1.tar.bz2.asc

Looking forward to your feedback!

-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list