Hi, all. This is a java q, but likely there is similar concerns in different languages.
As discussed in prior meetings, agent based auto instrumentation is ideal in many cases, especially where instrumentation covers the propagation concern.
For example, census' agent carries the trace context for you and watches out for double-instrumentation (not wrapping an executor twice).
There are a lot of java "scheduler" libraries, ones that wrap or create alternatives to base java types. Also, there is a repackaging practice for defence against version conflict: either via a tool like shade or explicit naming conventions, you can end up with multiple copies of a particular type (in different packages)
Does anyone have practice to share on this topic? I'm wondering if folks "snoop the classpath" to figure out if a type is a repackaged copy of another when instrumenting. This isnt limited to schedulers as the same thing can result in multiple anything.. rpc libraries for example.
How do you handle this when auto-instrumenting (if you do)?
-A