Network streaming support
authorDavid Goulet <dgoulet@efficios.com>
Wed, 11 Jul 2012 17:20:39 +0000 (13:20 -0400)
committerDavid Goulet <dgoulet@efficios.com>
Wed, 11 Jul 2012 18:23:20 +0000 (14:23 -0400)
commit00e2e675d54dc726a7c8f8887c889cc8ef022003
tree033ac0e4b4d520ab4b31a9dfcd919faf67008584
parentb8aa16822f579a6e15b41d2761801a0a65d5f2a5
Network streaming support

This is a huge commit integrating a lot of new feature for network
streaming support with the lttng-relayd previously merged.

Please note that this commit is the initial import of the network
streaming feature meaning that this is NOT stable and SHOULD be
considered experimental hence not suited for production deployment.

API Changes:

lttng_create_session_uri(), lttng_enable_consumer(),
lttng_set_consumer_uri() and lttng_disable_consumer() calls are added.
The lttng command line now supports these new calls by introducing two
new commands and one modified. (Please look at the --help option for
more details).

$ lttng enable-consumer
$ lttng disable-consumer

The "lttng create" command can now take new arguments to specify the
destination URI for network streaming. There is also a new flag which
allows the user to disable the consumer for the session.

At this point, the now old deprecated lttng_create_session() call is
still supported but SHOULD be replaced by lttng_create_session_uri().
More calls will be added to the API in order to facilitate the creation
of lttng URI.

Network streaming:

Both kernel and user space tracing are supported for network streaming.
For now, only IPv4 and IPv6 protocol over TCP is supported. Two network
socket are used where one is for control commands and the second one is
for data transmission. The port are respectively 5342 and 5343.

BUGS: Streaming high throughput traces (e.g lttng enable-event -a -k)
with low bandwitdh available to the relayd, the tracer does not behave
well when the metadata are not emptied enough quickly so data are
missing on the remote target and the tracing is simply not stoppable.
This is a known bug and future iterations will try to fix it.

WARNING: At this stage, there is _NO_ security features meaning no
remote authentication on the relayd, no transport layer encryption or
network secure handshake of some sort. So, uses only for in-vitro
experiment or on _trusted_ networks.

Signed-off-by: Julien Desfossez <julien.desfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
43 files changed:
configure.ac
include/lttng/lttng.h
src/bin/lttng-sessiond/Makefile.am
src/bin/lttng-sessiond/consumer.c [new file with mode: 0644]
src/bin/lttng-sessiond/consumer.h
src/bin/lttng-sessiond/kernel-consumer.c
src/bin/lttng-sessiond/kernel-consumer.h
src/bin/lttng-sessiond/kernel.c
src/bin/lttng-sessiond/main.c
src/bin/lttng-sessiond/session.c
src/bin/lttng-sessiond/session.h
src/bin/lttng-sessiond/trace-kernel.c
src/bin/lttng-sessiond/trace-kernel.h
src/bin/lttng-sessiond/trace-ust.c
src/bin/lttng-sessiond/trace-ust.h
src/bin/lttng-sessiond/ust-app.c
src/bin/lttng-sessiond/ust-consumer.c
src/bin/lttng-sessiond/ust-consumer.h
src/bin/lttng/Makefile.am
src/bin/lttng/command.h
src/bin/lttng/commands/create.c
src/bin/lttng/commands/disable_consumer.c [new file with mode: 0644]
src/bin/lttng/commands/enable_consumer.c [new file with mode: 0644]
src/bin/lttng/lttng.c
src/common/Makefile.am
src/common/consumer.c
src/common/consumer.h
src/common/defaults.h
src/common/kernel-consumer/Makefile.am
src/common/kernel-consumer/kernel-consumer.c
src/common/kernel-ctl/kernel-ctl.c
src/common/kernel-ctl/kernel-ctl.h
src/common/kernel-ctl/kernel-ioctl.h
src/common/relayd/Makefile.am [new file with mode: 0644]
src/common/relayd/relayd.c [new file with mode: 0644]
src/common/relayd/relayd.h [new file with mode: 0644]
src/common/uri.c
src/common/ust-consumer/Makefile.am
src/common/ust-consumer/ust-consumer.c
src/lib/lttng-ctl/lttng-ctl.c
tests/tools/Makefile.am
tests/tools/test_kernel_data_trace.c
tests/tools/test_sessions.c
This page took 0.028723 seconds and 4 git commands to generate.