How do we instrument application which uses LMAX Disruptor

Well, there are multiple ways to deal with that.

For anything you want to use as String (eg identifying whether a class has a specific name), you can just split the String setting into two concatenated Strings. Since the shading happens on source code, it won't be able to recognize that. You can see an example with our slf4j MDC plugin.

For anything you want to use as a real type, I would investigate what can be achieved with the Maven shade plugin filtering configurations, then change the current pom to shade only the specific classes agent directly depends on or specifically avoid shading the classes you instrument (the latter is preferable).

The other option is to use the public API to do the context propagation. For more details see this topic about doing the same with BlockingQueues and the PR that demonstrates that. The same concept should apply here as well.

I hope this helps,
Eyal.