I'm looking at writing monitoring code that runs inside a Java application and periodically takes a snapshot of running threads and displays some call stack information on each.
Ideally this would be extended for profiling and/or monitoring.
I don't want to use an external tool, as this is for self educational purposes.