java-application: split
[lttng-docs.git] / contents / using-lttng / controlling-tracing / lttng-live.md
CommitLineData
5e0cbfb0
PP
1---
2id: lttng-live
3---
4
5We have seen how trace files may be produced by LTTng out of generated
6application and Linux kernel events. We have seen that those trace files
7may be either recorded locally by consumer daemons or remotely using
8a relay daemon. And we have seen that the maximum size and count of
9trace files is configurable for each channel. With all those features,
10it's still not possible to read a trace file as it is being written
11because it could be incomplete and appear corrupted to the viewer.
12There is a way to view events as they arrive, however: using
13_LTTng live_.
14
15LTTng live is implemented, in LTTng, solely on the relay daemon side.
16As trace data is sent over the network to a relay daemon by a (possibly
47bfcb75
PP
17remote) consumer daemon, a _tee_ is created: trace data is recorded to
18trace files _as well as_ being transmitted to a connected live viewer:
5e0cbfb0 19
5703c9f3 20<figure class="img img-100">
b2c331ac 21<img src="/images/docs26/lttng-live.png" alt="LTTng live">
d9a0e8b1
PP
22<figcaption>
23 The relay daemon creates a <em>tee</em>, forwarding the trace data
24 to both trace files and a live viewer.
25</figcaption>
5703c9f3 26</figure>
5e0cbfb0
PP
27
28In order to use this feature, a tracing session must created in live
29mode on the target system:
30
31<pre class="term">
32lttng create --live
33</pre>
34
47bfcb75
PP
35An optional parameter may be passed to `--live` to set the period
36(in microseconds) between flushes to the network
37(1&nbsp;second is the default). With:
5e0cbfb0
PP
38
39<pre class="term">
40lttng create --live 100000
41</pre>
42
47bfcb75 43the daemons flush their data every 100&nbsp;ms.
5e0cbfb0
PP
44
45If no network output is specified to the `create` command, a local
47bfcb75 46relay daemon is spawned. In this very common case, viewing a live
5e0cbfb0
PP
47trace is easy: enable events and start tracing as usual, then use
48`lttng view` to start the default live viewer:
49
50<pre class="term">
51lttng view
52</pre>
53
47bfcb75 54The correct arguments are passed to the live viewer so that it
5e0cbfb0
PP
55may connect to the local relay daemon and start reading live events.
56
57You may also wish to use a live viewer not running on the target
58system. In this case, you should specify a network output when using
59the `create` command (`--set-url` or `--ctrl-url`/`--data-url` options).
60A distant LTTng relay daemon should also be started to receive control
61and trace data. By default, `lttng-relayd` listens on 127.0.0.1:5344
62for an LTTng live connection. Otherwise, the desired URL may be
63specified using its `--live-port` option.
64
65The
66<a href="http://www.efficios.com/babeltrace" class="ext">`babeltrace`</a>
67viewer supports LTTng live as one of its input formats. `babeltrace` is
68the default viewer when using `lttng view`. To use it manually, first
69list active tracing sessions by doing the following (assuming the relay
70daemon to connect to runs on the same host):
71
72<pre class="term">
b80ba306 73babeltrace --input-format lttng-live net://localhost
5e0cbfb0
PP
74</pre>
75
76Then, choose a tracing session and start viewing events as they arrive
4d46e8c0 77using LTTng live:
5e0cbfb0
PP
78
79<pre class="term">
b80ba306 80babeltrace --input-format lttng-live net://localhost/host/hostname/my-session
5e0cbfb0 81</pre>
This page took 0.026102 seconds and 4 git commands to generate.