Commit | Line | Data |
---|---|---|
5e0cbfb0 PP |
1 | --- |
2 | id: lttng-consumerd | |
3 | --- | |
4 | ||
5 | The _consumer daemon_, or `lttng-consumerd`, is a program sharing some | |
6 | ring buffers with user applications or the LTTng kernel modules to | |
7 | collect trace data and output it at some place (on disk or sent over | |
8 | the network to an LTTng relay daemon). | |
9 | ||
10 | Consumer daemons are created by a session daemon as soon as events are | |
11 | enabled within a tracing session, well before tracing is activated | |
12 | for the latter. Entirely managed by session daemons, | |
13 | consumer daemons survive session destruction to be reused later, | |
14 | should a new tracing session be created. Consumer daemons are always | |
15 | owned by the same user as their session daemon. When its owner session | |
16 | daemon is killed, the consumer daemon also exits. This is because | |
17 | the consumer daemon is always the child process of a session daemon. | |
18 | Consumer daemons should never be started manually. For this reason, | |
19 | they are not installed in one of the usual locations listed in the | |
20 | `PATH` environment variable. `lttng-sessiond` has, however, a | |
21 | <a href="/man/8/lttng-sessiond" class="ext">bunch of options</a> to | |
22 | specify custom consumer daemon paths if, for some reason, a consumer | |
23 | daemon other than the default installed one is needed. | |
24 | ||
25 | There are up to two running consumer daemons per user, whereas only one | |
26 | session daemon may run per user. This is because each process has | |
27 | independent bitness: if the target system runs a mixture of 32-bit and | |
28 | 64-bit processes, it is more efficient to have separate corresponding | |
29 | 32-bit and 64-bit consumer daemons. The `root` user is an exception: it | |
30 | may have up to _three_ running consumer daemons: 32-bit and 64-bit | |
31 | instances for its user space applications and one more reserved for | |
32 | collecting kernel trace data. | |
33 | ||
34 | As new tracing domains are added to LTTng, the development community's | |
35 | intent is to minimize the need for additionnal consumer daemon instances | |
36 | dedicated to them. For instance, the Java Util Logging (JUL) domain | |
37 | events are in fact mapped to the user space domain, thus tracing this | |
38 | particular domain is handled by existing user space domain consumer | |
39 | daemons. |