oazizi
For the question of whether it's possible to trace conditionally when a pattern expression matches, Pixie's philosophy is to trace everything and then allow you to use the querying language (called PxL) to query for the conditions you were looking for. The idea is that you may not know what you should have been looking for until you need to troubleshoot.
We'll be publishing a blog post on this soon, so please stay tuned. In the meanwhile, this other post (https://docs.pixielabs.ai/tutorials/simple-go-tracing/) gives an idea of how one can use EBPF user-space probes to trace applications and system libraries.
To add to what zasgar mentioned, I just wanted to point out that our instrumentation-free approach does apply to JVM and Node/Python applications for many of the traces we gather. For example, we use EBPF to trace protocols like HTTP as the data passes through the kernel. By gathering the data in the kernel, these EBPF tracers are completely language agnostic.