Monitoring JMX metrics


With APM Insight Java agent, you can track Java Management Extensions (JMX) metrics. Although we monitor and enhance application performance using transaction metrics and traces, it is equally important to monitor the environment where your application is running. Moreover, monitoring JMX metrics helps you gain additional insights.

By default, JMX metrics are captured from APM Insight Java agent version 5.1, and can be viewed under App Parameters tab. Since JMX metrics are specific to app servers, metrics captured by default in various servers are listed below.

Metrics Tomcat JBoss AS WildFly GlassFish WebLogic WebSphere AS WebSphere Liberty profile Jetty
Session
Data Source
Thread pool
Transactions (JTA)
Buffer Pool
File Descriptor Count

To enable capturing of JMX metrics, follow the steps given below:

  1. Log into your Applications Manager account.
  2. Navigate to the APM tab → Your application → Edit → APM Insight Application Configuration Profile.Applications Manager APM Insight Java agent Monitoring JMX metrics: Editing APM Insight Agent configuration profile.
  3. Click on Edit and enable Capture JMX metrics under Background transactions.Applications Manager APM Insight Java agent Monitoring JMX metrics: Enabling JMX metrics monitoring If you do not want to monitor JMX Metrics you can disable the Capture JMX metrics checkbox under the APM tab → Your application → Action → Edit → APM Insight Application Configuration Profile → Background transactions.
  4. Finally, click Save. You can now view the JMX metrics under the App Parameters tab.Applications Manager APM Insight Java agent Monitoring JMX metrics: JMX metrics tracking in App Parameters

Apart from the default metrics, you can also capture additional metrics by following the below given steps:

  1. Create a new file jmx_extensions.conf in agent directory.
  2. Add the JMX query in the following format:
    <Query_Name> <Name_of_Metric> <Comma_separated_Attributes>
    • You can add wildcard (*) to the queries.
    • You can also use the keys for naming the metrics by enclosing them with {}.
  3. Add each JMX in a new line.

Examples:

1. java.lang:type=OperatingSystem java.lang-OperatingSystem OpenFileDescriptorCount

Agent monitors attribute OpenFileDescriptorCount and it will be named as java.lang-OpenFileDescriptorCount

2. java.nio:type=BufferPool,name=* java.nio-BufferPool-{name} MemoryUsed, TotalMemory

The result of above query is that the agent monitors all the beans under the Buffer Pool, and will monitor the attributes memory used and total memory. This will be named as java.nio-BufferPool-Direct-MemoryUsed, etc.

3. com.zaxxer.hikari:type=Pool\ (HikariPool-1) com.zaxxer.hikari.Pool ActiveConnections, TotalConnections

Spaces in the query name should be escaped with a backslash (") before them so that the agent can properly parse the entire query string. In the preceding example, the whitespace between Pool and (HikariPool-1) has been escaped because "Pool (HikariPool-1)" is a complete name in itself.

If you do not want to monitor JMX metrics, you can disable the Capture JMX metrics checkbox under Configuration Profile → Edit APM agent configuration profile → Background transactions.

Thank you for your feedback!

Was this content helpful?

We are sorry. Help us improve this page.

How can we improve this page?
Do you need assistance with this topic?
By clicking "Submit", you agree to processing of personal data according to the Privacy Policy.