Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleJMXNamespaces.java
Code Block
languagejava
import javax.management.*;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.util.Set;

/**
 * This class demonstrates how to list JMX namespaces and MBeans on a remote JMX server.
 */
public class ListJMXNamespaces {
    /**
     * The main entry point of the program.
     *
     * @param args Command-line arguments (not used in this example).
     */
    public static void main(String[] args) {
        // Press Opt+Enter with your caret at the highlighted text to see how
        // IntelliJ IDEA suggests fixing it.
        System.out.printf("Hello and welcome!");

        // Define the JMX server URL
        String jmxUrl = "service:jmx:rmi:///jndi/rmi://localhost:9010/jmxrmi";

        try {
            // Create a JMX connector to connect to the remote JMX server
            JMXServiceURL serviceURL = new JMXServiceURL(jmxUrl);
            JMXConnector connector = JMXConnectorFactory.connect(serviceURL);

            // Connect to the MBean server
            MBeanServerConnection mbeanServerConnection = connector.getMBeanServerConnection();

            // List all MBeans and their object names
            System.out.println("Listing all MBeans and their namespaces:");
            Set<ObjectName> mbeanNames = mbeanServerConnection.queryNames(null, null);
            for (ObjectName mbeanName : mbeanNames) {
                //System.out.println("MBean: " + mbeanName);
                String namespace = mbeanName.getDomain(); // Extract the namespace
                //System.out.println("Namespace: " + namespace);
                System.out.println(namespace + " " + mbeanName);
            }

            // Close the JMX connector
            connector.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. Compilation

    Code Block
    languagebash
    javac JMXNamespaces.java
  2. Execution

    Code Block
    languagebash
    java JMXNamespaces

Scrape one metric periodically

...