Commit | Line | Data |
---|---|---|
5e0cbfb0 PP |
1 | --- |
2 | id: tracing-session | |
3 | --- | |
4 | ||
5 | A _tracing session_ is—like any session—a container of | |
6 | state. Anything that is done when tracing using LTTng happens in the | |
7 | scope of a tracing session. In this regard, it is analogous to a bank | |
8 | website's session: you can't interact online with your bank account | |
9 | unless you are logged in a session, except for reading a few static | |
10 | webpages (LTTng, too, can report some static information that does not | |
11 | need a created tracing session). | |
12 | ||
13 | A tracing session holds the following attributes and objects (some of | |
14 | which are described in the following sections): | |
15 | ||
16 | * a name | |
17 | * the tracing state (tracing started or stopped) | |
18 | * the trace data output path/URL (local path or sent over the network) | |
19 | * a mode (normal, snapshot or live) | |
20 | * the snapshot output paths/URLs (if applicable) | |
21 | * for each [domain](#doc-domain), a list of [channels](#doc-channel) | |
22 | * for each channel: | |
23 | * a name | |
24 | * the channel state (enabled or disabled) | |
25 | * its parameters (event loss mode, sub-buffers size and count, | |
ba3b1994 | 26 | timer periods, output type, trace files size and count, and the rest) |
5e0cbfb0 PP |
27 | * a list of added context information |
28 | * a list of [events](#doc-event) | |
29 | * for each event: | |
30 | * its state (enabled or disabled) | |
31 | * a list of instrumentation points (tracepoints, system calls, | |
ba3b1994 | 32 | dynamic probes, other types of probes) |
5e0cbfb0 PP |
33 | * associated log levels |
34 | * a filter expression | |
35 | ||
36 | All this information is completely isolated between tracing sessions. | |
66b69963 PP |
37 | As you can see in the list above, even the tracing state |
38 | is a per-tracing session attribute, so that you may trace your target | |
39 | system/application in a given tracing session with a specific | |
40 | configuration while another one stays inactive. | |
41 | ||
5703c9f3 | 42 | <figure class="img img-100"> |
66b69963 | 43 | <img src="/images/docs26/concepts.png" alt="LTTng concepts"> |
d9a0e8b1 PP |
44 | <figcaption> |
45 | A <em>tracing session</em> is a container of domains, | |
46 | channels, and events. | |
47 | </figcaption> | |
5703c9f3 | 48 | </figure> |
5e0cbfb0 PP |
49 | |
50 | Conceptually, a tracing session is a per-user object; the | |
51 | [Plumbing](#doc-plumbing) section shows how this is actually | |
52 | implemented. Any user may create as many concurrent tracing sessions | |
66b69963 PP |
53 | as desired. |
54 | ||
5703c9f3 | 55 | <figure class="img img-100"> |
66b69963 | 56 | <img src="/images/docs26/many-sessions.png" alt="Tracing sessions per user"> |
d9a0e8b1 PP |
57 | <figcaption> |
58 | Each user may create as many tracing sessions as desired. | |
59 | </figcaption> | |
5703c9f3 | 60 | </figure> |
5e0cbfb0 PP |
61 | |
62 | The trace data generated in a tracing session may be either saved | |
63 | to disk, sent over the network or not saved at all (in which case | |
64 | snapshots may still be saved to disk or sent to a remote machine). |