Initial import
[lttng-docs.git] / contents / using-lttng / instrumenting / intro.md
CommitLineData
5e0cbfb0
PP
1---
2id: instrumenting
3---
4
5There are many examples of tracing and monitoring in our everyday life.
6You have access to real-time and historical weather reports and forecasts
7thanks to weather stations installed around the country. You know your
8possibly hospitalized friends' and family's hearts are safe thanks to
9electrocardiography. You make sure not to drive your car too fast
10and have enough fuel to reach your destination thanks to gauges visible
11on your dashboard.
12
13All the previous examples have something in common: they rely on
14**probes**. Without electrodes attached to the surface of a body's
15skin, cardiac monitoring would be futile.
16
17LTTng, as a tracer, is no different from the real life examples above.
18If you're about to trace a software system, i.e. record its history of
19execution, you better have probes in the subject you're
20tracing: the actual software. Various ways were developed to do this.
21The most straightforward one is to manually place probes, called
22_tracepoints_, in the software's source code. The Linux kernel tracing
23domain also allows probes added dynamically.
24
25If you're only interested in tracing the Linux kernel, it may very well
26be that your tracing needs are already appropriately covered by LTTng's
27built-in Linux kernel tracepoints and other probes. Or you may be in
28possession of a user space application which has already been
29instrumented. In such cases, the work will reside entirely in the design
30and execution of tracing sessions, allowing you to jump to
31[Controlling tracing](#doc-controlling-tracing) right now.
32
33This section focuses on the following use cases of instrumentation:
34
35 * [C](#doc-c-application) and [C++](#doc-cxx-application) applications
36 * [prebuilt user space tracing helpers](#doc-prebuilt-ust-helpers)
37 * [Java application](#doc-java-application)
38 * [Linux kernel](#doc-instrumenting-linux-kernel) module or the
39 kernel itself
40 * the [`/proc/lttng-logger` <abbr title="Application Binary Interface">ABI</abbr>](#doc-proc-lttng-logger-abi)
41
42Some [advanced techniques](#doc-advanced-instrumenting-techniques) are
43also presented at the very end.
This page took 0.023181 seconds and 4 git commands to generate.