[lttng-dev] Java code for CTF trace writing?

Philippe Proulx philippe.proulx at polymtl.ca
Mon Apr 15 18:01:40 EDT 2013


Actually, that was the exact purpose of my internship at Ericsson last summer.

I designed a new architecture for the CTF part of TMF, but it is still
not merged/integrated with mainline TMF (I don't even know if it's
still planned). See
<http://git.dorsal.polymtl.ca/~pproulx?p=javeltrace.git;a=summary>.

This new architecture is able to read _and write_ CTF packets in a
generic way. The "Javeltrace" name is just a portmanteau of Java and
Babeltrace, although should this refined library be integrated into
TMF, it's not planned to be named like this. However, there exist a
command-line tool that I made which is officially named Javeltrace and
uses the aforementioned library. It is described here:
<http://www.dorsal.polymtl.ca/~pproulx/javeltrace/>. As explained on
the webpage, the main goal of this utility is to test my work
interactively.

Keep in mind that everything mentioned here is not thoroughly tested
and for sure there are a few bugs remaining. Also, the code didn't
evolve with the latest CTF versions, so there must be incompatibility
at some level.

The main use case at Ericsson was to synthesize a precise fake trace
from scratch using a human readable input format that could be
versioned. The generated CTF traces would then be used to exercise
parts of TMF to test specific behaviours without having to produce an
actual real trace. After a few discussions, we chose JSON as an
interchange format. So you will see lots of JSON related code out
there. The command-line Javeltrace utility is able to translate
from/to binary CTF.

At the end of my internship, I started writing docs for what I did.
It's here: <http://wiki.eclipse.org/Linux_Tools_Project/TMF/CTF_guide>.
It's not finished, but almost, so it should be up-to-date with my Git
codebase.

I also made this as a proof of concept:
<http://git.dorsal.polymtl.ca/~pproulx?p=javeltrace.git;a=tree;f=lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/out;h=67ab3097e9f3fc52a685d29620e4c40ee26ee896;hb=47b4cef68eb4524fc9e1865f58474e0bc81eba77>
(see all Mug*.java files). MugTracer is a simple Java tracer that
produces native CTF without even using the rest of my library since
CTF is so easy to *write*. It has a consumer thread and worked well,
although I didn't run any benchmark and I believe it's really slow
compared to UST.

Feel free to contact me, should you have any question about this.

On 15 April 2013 17:14, Aaron Spear <aspear at vmware.com> wrote:
> Hi all,
>
> I was wondering if anyone knew of some open source Java library that could WRITE CTF traces? I am using the linuxtools/TMF plugins to read CTF traces, but now need to write them from Java as well.
>
> I have a use case where I have an "event bus" in the Java app world and I would like to persist this event stream as a CTF trace. In this particular use case, the speed/low intrusiveness of LTTng UST is not as important as the portability, so a pure Java solution is ideal, though not strictly required.
>
> Also, please let me know if there are others out there who are interested in collaborating in writing such a library.
>
> regards,
> Aaron Spear
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev



More information about the lttng-dev mailing list