private void handleJMXPage(final HttpServletRequest req, final HttpServletResponse resp,
final Session session) throws IOException {
final Page page =
newPage(req, resp, session,
"azkaban/webapp/servlet/velocity/jmxpage.vm");
page.add("mbeans", this.server.getMbeanNames());
final Map<String, Object> executorMBeans = new HashMap<>();
for (final String hostPort : this.executorManagerAdapter.getAllActiveExecutorServerHosts()) {
try {
final Map<String, Object> mbeans =
this.executorManagerAdapter.callExecutorJMX(hostPort, JMX_GET_MBEANS, null);
executorMBeans.put(hostPort, mbeans.get("mbeans"));
} catch (final IOException e) {
logger.error("Cannot contact executor " + hostPort, e);
}
}
page.add("executorRemoteMBeans", executorMBeans);
final Map<String, Object> triggerserverMBeans = new HashMap<>();
triggerserverMBeans.put(this.triggerManager.getJMX().getPrimaryServerHost(),
this.triggerManager.getJMX().getAllJMXMbeans());
page.add("triggerserverRemoteMBeans", triggerserverMBeans);
page.render();
}