JMX Connector

    This connector can also be configured so that chosen JMX information will be periodically dumped and stored in memory for later access.

    To configure the JMX connector, create a catalog properties file with the following contents:

    To enable periodical dumps, define the following properties:

    1. connector.name=jmx
    2. jmx.dump-tables=java.lang:type=Runtime,com.facebook.presto.execution.scheduler:name=NodeScheduler
    3. jmx.dump-period=10s
    4. jmx.max-entries=86400

    Commas in MBean names should be escaped in the following manner:

    1. connector.name=jmx
    2. jmx.dump-tables=com.facebook.presto.memory:type=memorypool\\,name=general,\
    3. com.facebook.presto.memory:type=memorypool\\,name=system,\

    Querying JMX

    The JMX connector provides two schemas.

    The first one is current that contains every MBean from every node in the Presto cluster. You can see all of the available MBeans by running SHOW TABLES:

      1. node | vmname | vmversion
      2. --------------------------------------+-----------------------------------+-----------
      3. ddc4df17-0b8e-4843-bb14-1b8af1a7451a | Java HotSpot(TM) 64-Bit Server VM | 24.60-b09
      4. (1 row)

      The following query shows the open and maximum file descriptor counts for each node:

      1. SELECT openfiledescriptorcount, maxfiledescriptorcount
      2. FROM jmx.current."java.lang:type=operatingsystem";
      1. openfiledescriptorcount | maxfiledescriptorcount
      2. -------------------------+------------------------
      3. 329 | 10240
      4. (1 row)

      The wildcard character * may be used with table names in the schema. This allows matching several MBean objects within a single query. The following query returns information from the different Presto memory pools on each node:

      1. ------------+---------+----------------------------------------------------------
      2. 214748364 | example | com.facebook.presto.memory:type=MemoryPool,name=reserved
      3. 1073741825 | example | com.facebook.presto.memory:type=MemoryPool,name=general
      4. 858993459 | example | com.facebook.presto.memory:type=MemoryPool,name=system
      5. (3 rows)

      The history schema contains the list of tables configured in the connector properties file. The tables have the same columns as those in the current schema, but with an additional timestamp column that stores the time at which the snapshot was taken:

      1. SELECT "timestamp", "uptime" FROM jmx.history."java.lang:type=runtime";
      1. timestamp | uptime
      2. -------------------------+--------
      3. 2016-01-28 10:18:50.000 | 11420
      4. 2016-01-28 10:19:00.000 | 21422
      5. (3 rows)