<div dir="ltr">Hello,<div><br></div><div>It is a limitation for both size and some security measures. We want to ensure that we can set limits controlled by our custom application.</div><div><br></div><div>For testing purposes, I did initially have lttng-tools and lttng-ust added to the build image but again for the limitations described it cannot go into the final 'production' rootfs. So it's nice that the service file exists, but without the tools installed I do not think I can make use of it, unless there is a way to strip out everything from lttng-tools except for the sessiond functionality. </div><div><br></div><div>My guess from everything you are saying is that I will have to create a custom method for spawning a session daemon without having lttng-tools available, however I am unsure where to start. From way lttng-tools does it, I see it call the executable 'lttng-sessiond', but I cannot find a reference to when or how that executable is getting built. </div><div><br></div><div>Thanks again for quick responses. </div><div><br></div><div>Regards,</div><div>Mosleh </div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 3, 2019 at 10:25 AM Jonathan Rajotte-Julien <<a href="mailto:jonathan.rajotte-julien@efficios.com">jonathan.rajotte-julien@efficios.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Apr 03, 2019 at 09:08:45AM -0400, Mosleh Uddin wrote:<br>
> Hello,<br>
> <br>
> Sorry, I should be more specific. I am creating a custom yocto build. I<br>
> have seen some examples where systemd is utilized to start the sessiond as<br>
> a service. The limitation I have is that I don't want to include the whole<br>
> lttng-tools librray in my build. I understand that the sessiond is an<br>
<br>
You will have to if you plan on tracing any applications on your resulting<br>
image. Why is it a limitation? Size constraint?<br>
<br>
lttng-tools is already part of OE-core (the meta/ layer). Use this recipe to<br>
build it [1] or as a base for a custom one.<br>
<br>
[1] <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb" rel="noreferrer" target="_blank">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb</a><br>
<br>
You can add the following to your local.conf file to build only lttng-ust and<br>
lttng-tools.<br>
<br>
CORE_IMAGE_EXTRA_INSTALL += "lttng-ust lttng-tools"<br>
PACKAGECONFIG_pn-lttng-tools_append = " lttng-ust"<br>
<br>
By default a systemd service file is installed but is not activated (which seems<br>
to be what you want).<br>
<br>
Cheers<br>
<br>
<br>
> executable, I am just unsure how I could build or get this in my build.<br>
> Moving forward from this I could use fork/exec to daemonize which would be<br>
> simple.<br>
> Is there perhaps a existing recipe?<br>
> <br>
> Regards,<br>
> Mosleh<br>
> <br>
> On Tue, Apr 2, 2019 at 6:01 PM Mosleh Uddin <<a href="mailto:mosleh1235@gmail.com" target="_blank">mosleh1235@gmail.com</a>> wrote:<br>
> <br>
> > Hi,<br>
> ><br>
> > That makes complete sense. I was more curious about the sessiond<br>
> > executable. I'm guessing this is something I will have to create along with<br>
> > my build?<br>
> ><br>
> > Regards,<br>
> > Mosleh<br>
> ><br>
> > On Tue, Apr 2, 2019 at 5:18 PM Jonathan Rajotte-Julien <<br>
> > <a href="mailto:jonathan.rajotte-julien@efficios.com" target="_blank">jonathan.rajotte-julien@efficios.com</a>> wrote:<br>
> ><br>
> >> On Tue, Apr 02, 2019 at 04:54:00PM -0400, Mosleh Uddin wrote:<br>
> >> > Hello,<br>
> >> ><br>
> >> > Could you give me some more insight into spawning my own sessiond? Sorry<br>
> >> > I'm not completely clear on the topic.<br>
> >> > Thank you for all your assistance.<br>
> >><br>
> >> Normally lttng-sessiond is treated as a "server/service/daemon" (think<br>
> >> http<br>
> >> server as apache) and is *normally* launched as a daemon<br>
> >> (systemd/sysVinit) at<br>
> >> boot time.<br>
> >><br>
> >> Managing manually the lifetime of a lttng-sessiond process is done the<br>
> >> same way<br>
> >> as any other process. You can manage it via the command line<br>
> >> (./lttng-sessiond), via a<br>
> >> service manager (systemd/upstart etc.) or with a custom service manager (a<br>
> >> python script/c etc.).<br>
> >><br>
> >> You could spawn a lttng-sessiond from your application with the<br>
> >> appropriate<br>
> >> parameters set to isolate it if you need. LTTNG_HOME is an important one.<br>
> >> The<br>
> >> output directory also can be manipulated. See man lttng-sessiond for more<br>
> >> details. You will need to manage the process or leave it to a system<br>
> >> administrator and only active tracing when a sessiond is present for<br>
> >> example.<br>
> >><br>
> >> Cheers<br>
> >><br>
> >> ><br>
> >> > Regards,<br>
> >> > Mosleh<br>
> >> ><br>
> >> > On Wed, Mar 27, 2019 at 1:52 PM Jonathan Rajotte-Julien <<br>
> >> > <a href="mailto:jonathan.rajotte-julien@efficios.com" target="_blank">jonathan.rajotte-julien@efficios.com</a>> wrote:<br>
> >> ><br>
> >> > > Hi Mosleh,<br>
> >> > ><br>
> >> > > On Wed, Mar 27, 2019 at 12:09:54PM -0400, Mosleh Uddin wrote:<br>
> >> > > > Hello,<br>
> >> > > ><br>
> >> > > > Thank you for the quick response. I was able to use the<br>
> >> documentation you<br>
> >> > > > provided to start a session and get tracepoint list. I do have some<br>
> >> > > > follow-up questions:<br>
> >> > > ><br>
> >> > > > 1) I needed to create a session daemon before executing my custom<br>
> >> > > > application. In the API I did see functionality to see if a daemon<br>
> >> is<br>
> >> > > > active, however, it is possible to spawn a session daemon in my<br>
> >> custom<br>
> >> > > app?<br>
> >> > ><br>
> >> > > liblttng-ctl does not expose a lttng-sessiond spawning function since<br>
> >> by<br>
> >> > > definition it is a daemon executable (think apache,mysql etc.), you<br>
> >> will<br>
> >> > > have to<br>
> >> > > use system/popen/exec.. to spawn the lttng-sessiond process etc. if<br>
> >> you<br>
> >> > > want to<br>
> >> > > control its lifetime using your custom application.<br>
> >> > ><br>
> >> > > ><br>
> >> > > > 2) I am able to get a list of active traces lttng can see in<br>
> >> userspace, I<br>
> >> > > > enable all the traces and start tracing. The traces however seem to<br>
> >> not<br>
> >> > > be<br>
> >> > > > written anywhere on my filesystem. Do I have to specify a location?<br>
> >> Or<br>
> >> > > am I<br>
> >> > > > missing something? My current flow is:<br>
> >> > ><br>
> >> > > Please refer to the create command. If outputting locally you will<br>
> >> need to<br>
> >> > > pass<br>
> >> > > a "file://...." url to lttng_create_session.<br>
> >> > ><br>
> >> > > You can check on the result for each steps using "lttng list" and<br>
> >> "lttng<br>
> >> > > list<br>
> >> > > <session_name>" as you go to troubleshot your setup script.<br>
> >> > ><br>
> >> > > While debugging you can also start the lttng-sessiond in verbose mode<br>
> >> to<br>
> >> > > understand what is going on.<br>
> >> > ><br>
> >> > > Also note that you could also use the lttng "load" api if the session<br>
> >> you<br>
> >> > > are<br>
> >> > > trying to load is "static" and always the same. You would only need to<br>
> >> > > ship an<br>
> >> > > xml file with your application.<br>
> >> > ><br>
> >> > > Cheers<br>
> >> > ><br>
> >> > > ><br>
> >> > > >    - Creating a session<br>
> >> > > >    - Specifying the domain<br>
> >> > > >    - Creating a handle<br>
> >> > > >    - Creating a channel (with default attributes)<br>
> >> > > >    - Enabling the channel<br>
> >> > > >    - Enabling event (for all traces)<br>
> >> > > >    - Start tracing<br>
> >> > > ><br>
> >> > > > Thanks again for all the assistance.<br>
> >> > > ><br>
> >> > > > Regards,<br>
> >> > > > Mosleh<br>
> >> > > ><br>
> >> > > > On Tue, Mar 26, 2019 at 11:29 AM Jonathan Rajotte-Julien <<br>
> >> > > > <a href="mailto:jonathan.rajotte-julien@efficios.com" target="_blank">jonathan.rajotte-julien@efficios.com</a>> wrote:<br>
> >> > > ><br>
> >> > ><br>
> >><br>
> >> --<br>
> >> Jonathan Rajotte-Julien<br>
> >> EfficiOS<br>
> >><br>
> ><br>
<br>
-- <br>
Jonathan Rajotte-Julien<br>
EfficiOS<br>
</blockquote></div>