Я бы предложил периодически запускать Java Flight Recorder.
Что это? Это инструмент профилирования, похожий на те, что вы уже упоминали, он собирает все обычные данные .
Как это использовать? Здесь - краткое описание того, как его запустить. Будьте внимательны, приложению, которое вы хотите профилировать, нужны эти дополнительные параметры JVM :
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
И, наконец, для периодического планирования вам нужна команда, которую вы можете использовать из crontab. Для этого вы можете использовать пример команды из предыдущей ссылки:
jcmd 5368 JFR.start duration=60s filename=myrecording.jfr
Где "5368" - это PID вашего профилированного приложения, а остальное не требует пояснений.