VisualVM/VisualGC предоставляет довольно много полезных метрик, связанных с GC, в режиме реального времени, но мне нужен инструмент командной строки, который может подключаться к удаленному приложению через jstatd и записывать в CSV или XML, в идеале точно такие же метрики, что и VisualGC. Написать свой собственный не должно быть проблемой, но с первого взгляда я не могу найти, какой протокол использует visualvm/jstatd.
Насколько я понимаю, VisualGC не является открытым исходным кодом: https://stackoverflow.com/questions/11096466/where-is-the-source-code-repository-for-visualgc, но существуют ли альтернативные инструменты с открытым исходным кодом? Есть ли какие-нибудь подсказки, как насчет используемого протокола?
Мне удалось подключиться к jstatd через RMI (порт по умолчанию 1099, JStatRemoteHost — это имя rmi), могу подключиться к конкретной виртуальной машине, но http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/jvmstat/monitor/remote/RemoteVm.java#RemoteVm — это довольно низкоуровневый интерфейс с jstatd.
Я проверил исходный код VisualVM с https://svn.java.net/svn/visualvm~svn/trunk и только начал просматривать кодовую базу размером 5 Мб, однако он не использует ни RemoteHost, ни RemoteVm RMI-классы.
Спасибо.