Monitoring and collecting data from JMX

The JMX technology provides a simple, standard way of managing resources such as applications, devices, and services. Because the JMX technology is dynamic, you can use it to monitor and manage resources as they are created, installed and implemented. You can also use the JMX technology to monitor and manage the Java Virtual Machine (Java VM).

More information on: http://docs.oracle.com/javase/tutorial/jmx/

How it works

CoScale JMX plugin collects custom metrics from your local JMX server using a JMX endpoint. By default CoScale will gather JVM metrics like CPU, Memory, GC, Threads. Custom metrics can be gathered by providing a bean or metric definition. CoScale also supports parsing metrics from JMX using Jolokia.

Installation

The plugin needs to be installed together with a CoScale agent, instructions on how to install the CoScale agent can be found here. If you want to monitor JMX inside Docker containers using CoScale, check out the instructions here.

Configuration

JMX Connection

Provide JMX hostname and port

JMX Configuration Step 1

Bean configuration

You can add custom bean names and attributes.

If you want the same bean to have multiple attributes, add a new bean with the same name and your prefered attribute. To configure JMX metrics, you can choose between two configuration formats:

  • MBEANS format

    Requires only the bean name and attributes, the metric details will be automatically generated.

    BEANS:<"mbean"> <"attribute1"> ["attribute2"]

  • METRIC format

    Allows to define custom metrics. Note: This format doesn’t accept multiple attributes on the same configuration line.

    METRIC:<"mbean> <"attribute"> <"Custom Name"> <"unit"> <"dimension1:dimensionValue1,dimension2:dimensionValue2">

JMX Configuration Step 2

Metrics

JMX

Name Unit Dimensions
JMX Uptime ms Endpoint

JMX / Active check

Name Unit Dimensions
JMX active check latency s Endpoint
JMX active check uptime % Endpoint

JMX / Buffer Pool

Name Unit Dimensions
JMX BufferPool Count   Endpoint, BufferPool
JMX BufferPool Memory Used b Endpoint, BufferPool

JMX / Classes

Name Unit Dimensions
JMX Loaded Class Count   Endpoint
JMX Unloaded Class Count   Endpoint

JMX / CPU

Name Unit Dimensions
JMX Compilation Time ms Endpoint
JMX Process CPU time ms Endpoint

JMX / Garbage Collection

Name Unit Dimensions
JMX Garbage Collections # Endpoint, Collector
JMX GC Collection Time ms Endpoint, Collector

JMX / Memory

Name Unit Dimensions
JMX Memory Usage Committed b Endpoint, MemoryPool
JMX Memory Usage Init b Endpoint, MemoryPool
JMX Memory Usage Max b Endpoint, MemoryPool
JMX Memory Usage Used b Endpoint, MemoryPool

JMX / Open files

Name Unit Dimensions
JMX Max File Descriptor Count   Endpoint
JMX Open File Descriptor Count   Endpoint

JMX / Threads

Name Unit Dimensions
JMX Daemon Thread Count   Endpoint
JMX Started Threads   Endpoint
JMX Thread Count   Endpoint
JMX Thread CPU Time % Endpoint