Commit | Line | Data |
---|---|---|
c0e668d0 DG |
1 | STREAMING |
2 | ---------------- | |
3 | ||
4 | [Last updated: 2012-07-17 by David Goulet] | |
5 | ||
6 | This is a brief howto for network streaming< feature of lttng 2.0 toolchain. | |
7 | ||
8 | See the README file for installation procedure or use the various Linux | |
9 | distribution packages. | |
10 | ||
11 | Terminology: | |
12 | ||
13 | * The "target" is the traced machine (either UST or/and kernel tracer) | |
14 | ||
15 | * The "remote" is the machine that receives the traces over network | |
16 | streaming transport layer. | |
17 | ||
18 | Basics: | |
19 | ||
20 | Here are the basics concept of the new streaming component. We use two network | |
21 | ports for that called _control_ and _data_ respectively defined by default to | |
22 | 5342 and 5343. | |
23 | ||
24 | The control port is where the commands AND metadata data are sent since this | |
25 | stream is considered to be the reliable and prioritize transport channel. The | |
26 | data port is the stream with all the tracing raw data. | |
27 | ||
28 | In order to gather traces from the network, the remote machine MUST have a | |
29 | lttng-relayd running on it bound to network interfaces remotely reachable by the | |
30 | target. | |
31 | ||
32 | [remote] $ lttng-relayd -d | |
33 | (to daemonize) | |
34 | ||
35 | [remote] $ lttng-relayd -vvv | |
36 | (foreground with debug output) | |
37 | ||
38 | [remote] $ lttng-relayd -C 1234 -D 5678 | |
39 | (control port set to 1234 and data port to 5678) | |
40 | ||
41 | Once done, the following examples shows you how to start streaming from the | |
42 | target machine to the remote host where we just started a lttng relay. | |
43 | ||
44 | Example 1: | |
45 | ---------------- | |
46 | ||
47 | Simple and quick network streaming. | |
48 | ||
49 | 1) Create a tracing session that will be streamed over the network for the | |
50 | specified domain. This session will contain, in our example, syscall events. | |
51 | ||
52 | # lttng create syscall-session | |
53 | ||
54 | 2) Enable the consumer to send data over the network for the kernel domain. | |
55 | ||
56 | # lttng enable-consumer --kernel net://<remote_addr> | |
57 | ||
58 | You can also skip this step and directly use the lttng create command like so: | |
59 | ||
60 | # lttng create -U net://<remote_addr> syscall-session | |
61 | ||
62 | 3) Set and start the tracing. Nothing new here. | |
63 | ||
64 | # lttng enable-event -a --syscall -k | |
65 | # lttng start | |
66 | (wait and get coffee) | |
67 | # lttng stop | |
68 | ||
69 | On the relay side, the trace will be written to the lttng-traces/ directory of | |
70 | the relayd user in: | |
71 | ||
72 | hostname/session-name/kernel/* | |
73 | ||
74 | Just run babeltrace or lttng view -t PATH with the previous path. | |
75 | ||
76 | Example 2: | |
77 | ---------------- | |
78 | ||
79 | This example uses all possible options to fine grained control the streaming. | |
80 | ||
81 | 1) Again, create a tracing session that will be streamed over the network for | |
82 | the specified domain. | |
83 | ||
84 | # lttng create syscall-session | |
85 | ||
86 | 2) Set relayd URIs for the tracing session and kernel domain. | |
87 | ||
88 | ONLY set the remote relayd URIs (both control and data at the same destination | |
89 | and using default ports) on the consumer but does not enable the consumer to use | |
90 | network streaming yet. | |
91 | ||
92 | # lttng enable-consumer -k -U net://<remote_addr> | |
93 | ||
94 | You can also set both control and data URIs using -C and -D respectively for | |
95 | that like so: | |
96 | ||
97 | # lttng enable-consumer -k -C tcp://<remote_addr>-D tcp://<remote_addr> | |
98 | ||
99 | 3) Enable the consumer previously setup with the relayd URIs. | |
100 | ||
101 | This enables the previous network destination. From this point on, the consumer | |
102 | is ready to stream once tracing is started. | |
103 | ||
104 | # lttng enable-consumer -k --enable | |
105 | ||
106 | 4) Set and start the tracing. Nothing new here. | |
107 | ||
108 | # lttng enable-event -a --syscall -k | |
109 | # lttng start | |
110 | (wait and get coffee) | |
111 | # lttng stop | |
112 | ||
113 | Again, run babeltrace as mention in the previous example on the relayd side. | |
114 | ||
115 | For more information, please read the --help options of each command or the man | |
116 | pages lttng(1) and the lttng-relayd(8) |