No navegador, você pode encontrar a lista de MBeans do processo agrupados por espaços de nomes. Alguns deles, como os que estão sob o espaço de nome java.lang, podem ser encontrados em qualquer JVM, enquanto outros são específicos àquela aplicação. Para cada MBean, você poderá ver diferentes categorias para atributos, operações e notificações. Para monitoramento, focaremos em atributos. Existem alguns MBeans que, apesar de serem diferentes, implementam a mesma interface. Por exemplo, é comum descobrir que aplicações diferentes como Tomcat ou Kafka usam Garbage Collectors diferentes dependendo do uso, mas no JMX, existem objetos do mesmo tipo, só que com nomes diferentes.
Conseguir descobrir essas informações é muito bom, mas, na hora de monitorar a infraestrutura, algo como o JConsole pode não estar disponível. Além disso, você pode precisar agregar informações de diferentes processos que podem estar em servidores diferentes. Felizmente, isso pode ser feito pelo Metricbeat e pelo Jolokia.
O Metricbeat pode coletar informações de diferentes servidores, enviá-las para a Elasticsearch e, a partir de lá, elas podem ser visualizadas em uma série de formas com o Kibana. Mas, como já vimos, o JMX só pode ser consumido com as aplicações em Java, e é aí que o Jolokia entra em campo. O Jolokia é um agente que pode ser implantado em JVMs para expor seus MBeans através de um endpoint HTTP REST-like, tornando toda essa informação disponível de forma fácil para aplicações não Java no mesmo host. Ele pode ser empregado como um agente de JVM comum, como um WAR para ambientes Java EE ou como agente OSGI ou Mule.