[lttng-dev] RFC: More flexible support for UST event collection in containers
Loïc Gelle
loic.gelle at polymtl.ca
Wed Aug 1 13:36:14 EDT 2018
Hi all,
I am writing a proof of concept for LTTng (ust + tools) for better
support of application tracing in containers. My point is that we
should be able to collect all UST events emitted from within
containers using a single sessiond / consumerd, at least if you want
to. The main problem to that approach was that the session deamon was
unable to handle PID clashes when two apps with the same vpid tried to
register. I fix this by patching the UST client for it to declare both
its PID and its PID namespace inode number during registration (and I
also propagated the change to lttng-tools for app registration in the
hashtable). My patched versions of tools and UST are here, in the
branch "containers":
https://github.com/loicgelle/lttng-ust
https://github.com/loicgelle/lttng-tools
One problem that I have now is that LTTng-tools currently uses
/proc/[pid]/cmdline to fetch the name of each application when listing
the available tracepoints. This is a problem since we have no (simple)
way to know the PID of the registered apps in the context of the PID
namespace of sessiond, so this step basically fails. I thought that a
fix for this would be to ask the applications themselves to declare
their name using their dedicated socket. Do you think that would be
possible and relevant?
Also, if you like the idea that I'm pushing, there is more work ahead
to make it a feature (for example propagating the changes to pid
tracking).
Thanks,
Loïc.
More information about the lttng-dev
mailing list