I'm running a java application in ECS on AWS with one task per EC2 instance. In other words, I'm running a single instance of an application per server with no interfering workloads. I've been following this doc:
https://www.slideshare.net/brendangregg/java-performance-analysis-on-linux-with-flame-graphs
I'm currently using the profile BCC script to generate the stack dumps with the command (the command being run on the host and not within the container namespace):
/usr/share/bcc/tools/profile -F 99 -adf 60 -p <pid> > profile.out.folded
After providing the JVM the -XX:+PreserveFramePointer flag, I get a flamegraph looking like follows:
How do I get the symbols? The docs by Brendan Gregg are 7 years old and there's been tremendous progress within the bpf ecosystem during that timeframe. Does anyone have this working with a containerized application and what would be the easiest way to get symbols out of a JVM? The JVMTI agent mentioned in the project that dumps symbols to /tmp has been stale for many years already.
Anyone doing such profiling in production using bpf tooling? If so how?
