Я смотрю на написание кода мониторинга, который выполняется внутри приложения Java и периодически делает снимок запущенных потоков и отображает некоторую информацию о стеке вызовов для каждого.
В идеале это должно быть расширено для профилирования и / или мониторинга.
Я не хочу использовать внешний инструмент, так как он предназначен для самообразования.