Elastic APM Java Agent JMX

If you are asking about a problem you are experiencing, please use the following template, as it will help us help you. If you have a different problem, please delete all of this text :slight_smile:

TIP 1: select at least one tag that further categorizes your topic. For example server for APM Server related questions, java for questions regarding the Elastic APM Java agent, or ui for questions about the APM App within Kibana.

TIP 2: Check out the troubleshooting guide first. Not only will it help you to resolve common problems faster but it also explains in more detail which information we need before we can properly help you.

Kibana version: 7.16.3

Elasticsearch version: 7.16.3

APM Server version: 7.16.3

APM Agent language and version: Java Agent; Version: 1.32.0

Browser version:

Original install method (e.g. download page, yum, deb, from source, etc.) and version:

Fresh install or upgraded from other version?
Fresh Install

Is there anything special in your setup? For example, are you using the Logstash or Kafka outputs? Are you using a load balancer in front of the APM Servers? Have you changed index pattern, generated custom templates, changed agent configuration etc.

Description of the problem including expected versus actual behavior. Please include screenshots (if relevant):

I'm trying to configure JMX metric collection in the Elastic APM Java agent. I configured the capture_jmx_metrics option in elasticapm.properties as follows:
    capture_jmx_metrics=[ object_name[java.lang:type=Memory] attribute[HeapMemoryUsage:metric_name=heap] ] 

I get the following error:
2022-06-30 01:31:13,197 [elastic-apm-configuration-reloader] WARN  org.stagemonitor.configuration.ConfigurationOption - Error in /opt/app/bbnmsls/ol/config/bbnmsls-elasticapm.properties: Empty key at pos 1 in '[ object_name[java.lang:type=Memory] attribute[HeapMemoryUsage:metric_name=heap] ]' Default value '' for 'capture_jmx_metrics' will be applied.

I also tried using the below json format, which resulted in the same error:
  capture_jmx_metrics=[ \
    {"object_name": "java.lang:type=GarbageCollector,name=*", "attribute": "CollectionCount", "metric_name": "collection_count"}, \
    {"object_name": "java.lang:type=GarbageCollector,name=*", "attribute": "CollectionTime"} \

Steps to reproduce:

  1. enable capture_jmx_metrics in elasticapm.properties

Errors in browser console (if relevant):

Provide logs and/or server output (if relevant):

Hi @aravind0910 ,

The syntax is not correct in your configuration properties, it should be replaced by:

capture_jmx_metrics=object_name[java.lang:type=Memory] attribute[HeapMemoryUsage:metric_name=heap]

Also, for extra clarity I suggest using the multi-line syntax when there are multiple objects and attributes:

object_name[java.lang:type=Memory] \
attribute[HeapMemoryUsage:metric_name=heap] \
attribute[NonHeapMemoryUsage:metric_name=nonheap] \
, \
object_name[java.lang:type=Threading] \
attribute[ThreadCount:metric_name=thread_count] \

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.