X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=contents%2Fgetting-started%2Fviewing-and-analyzing.md;h=a00a81412c812e87889c1c57842ddbff33b01388;hb=66b69963941ab91fc59d264ec5f893e5e8ef1b14;hp=7fd3802fd743386f2943391de9be18cff6e48cc8;hpb=7656863f4f49a3b35827823314d709f73fb8f621;p=lttng-docs.git diff --git a/contents/getting-started/viewing-and-analyzing.md b/contents/getting-started/viewing-and-analyzing.md index 7fd3802..a00a814 100644 --- a/contents/getting-started/viewing-and-analyzing.md +++ b/contents/getting-started/viewing-and-analyzing.md @@ -5,33 +5,22 @@ id: viewing-and-analyzing-your-traces This section describes how to visualize the data gathered after tracing the Linux kernel or a user space application. -Many ways exist to read your LTTng traces: +Many ways exist to read LTTng traces: * **`babeltrace`** is a command line utility which converts trace formats; it supports the format used by LTTng, CTF, as well as a basic text output which may be `grep`ed. The `babeltrace` command is part of the - Babeltrace project. - * Babeltrace also includes a **Python binding** so that you may + Babeltrace project. + * Babeltrace also includes **Python bindings** so that you may easily open and read an LTTng trace with your own script, benefiting from the power of Python. - * The ** - Eclise IDE for C/C++ Developers** - includes the Tracing and Monitoring Framework (TMF) plugin which - supports LTTng traces, amongst others. - * Trace Compass - is an Eclipse plugin, the TMF plugin mentioned above moved to its own - project, used to visualize and analyze various types of traces, - including LTTng. It also comes as a standalone application and can be - downloaded from - here - for a daily build of the latest source code. A version containing some - experimental features like Virtual Machine analysis and Critical Path - analysis is also available - here. - -LTTng trace files are usually recorded in the `~/lttng-traces` directory. + * **Trace Compass** + is an Eclipse plugin used to visualize and analyze various types of + traces, including LTTng's. It also comes as a standalone application. + +LTTng trace files are recorded in the `~/lttng-traces` directory by default. Let's now view the trace and perform a basic analysis using `babeltrace`. @@ -42,8 +31,8 @@ path to `babeltrace` with no options: babeltrace ~/lttng-traces/my-session -`babeltrace` will find all traces within the given path recursively and -output all their events, merging them intelligently. +`babeltrace` finds all traces recursively within the given path and +prints all their events, merging them in order of time. Listing all the system calls of a Linux kernel trace with their arguments is easy with `babeltrace` and `grep`: @@ -55,7 +44,7 @@ babeltrace ~/lttng-traces/my-kernel-session | grep sys_ Counting events is also straightforward:
-babeltrace ~/lttng-traces/my-kernel-session | grep sys_read | wc -l
+babeltrace ~/lttng-traces/my-kernel-session | grep sys_read | wc --lines
 
The text output of `babeltrace` is useful for isolating events by simple @@ -65,13 +54,13 @@ are not trivial to write using a shell. Moreover, reductions and even the most basic computations involving multiple events are virtually impossible to implement. -Fortunately, Babeltrace ships with a Python 3 binding which makes it +Fortunately, Babeltrace ships with Python 3 bindings which makes it really easy to read the events of an LTTng trace sequentially and compute the desired information. -Here's a simple example using the Babeltrace Python binding. The following +Here's a simple example using the Babeltrace Python bindings. The following script accepts an LTTng Linux kernel trace path as its first argument and -outputs the short names of the top 5 running processes on CPU 0 during the +prints the short names of the top 5 running processes on CPU 0 during the whole trace: ~~~ python @@ -135,7 +124,7 @@ def top5proc(): last_ts = cur_ts # display top 10 - for name, ns in exec_times.most_common()[:5]: + for name, ns in exec_times.most_common(5): s = ns / 1000000000 print('{:20}{} s'.format(name, s)) @@ -152,8 +141,8 @@ python3 top5proc.py ~/lttng-sessions/my-session-.../kernel Make sure the path you provide is the directory containing actual trace -files (`channel0_0`, `metadata`, etc.): the `babeltrace` utility recurses -directories, but the Python binding does not. +files (`channel0_0`, `metadata`, and the rest): the `babeltrace` utility +recurses directories, but the Python bindings do not. Here's an example of output: