Java Mission Control - запись значений Mbean
Можно ли записать значения в mbeans с помощью устройства записи полетов? Когда я наблюдаю за своим сервером в режиме Mbean, я строю график java.lang.management.OperatingSystemMXBean.getSystemLoadAverage()
который прекрасно работает Я также хотел бы получить это значение в дампе записи полета.
В мастере записи полетов я могу выбирать только события, нет доступных опций mbeans. Есть какой-либо способ сделать это?
3 ответа
Вы можете добавить эту функцию самостоятельно; хотя вам придется полагаться на неподдерживаемый API для создания событий JFR:
Вы можете, например, создать агент Java, который многократно выбирает интересующие вас значения и записывает их как события регистратора полета.
Если хотите, я мог бы создать такого агента. Сделал бы хороший пост в блоге, так что я бы не стал возражать.;)
Это зависит от того, какой атрибут в OperatingSystemMXBean вас интересует, некоторые из них уже доступны как события JFR, например ProcessCpuLoad.
Я считаю, что некоторые из более ориентированных на ОС значений, таких как пространство подкачки, в настоящее время не имеют соответствующих событий JFR. Они могут быть добавлены в будущем.
В общем, запись данных из mbeans в JFR - это не то, чем мы занимаемся, я не думаю, что это также предусмотрено ни в одной дорожной карте.
Есть возможность отследить данные Mbean и сохранить их (называемые "Постоянство данных JMX" или "Исторические данные" в зависимости от вашей версии JMC), но я предполагаю, что это не то, что вам нужно.
Добавление нового ответа, поскольку я реализовал агента, который я предложил в своем первом ответе:
Самый простой способ - скачать и использовать агент, который я внедрил и добавил в свой блог здесь: hirt.se/blog/?p=689