Skip to content
This repository was archived by the owner on Jan 21, 2026. It is now read-only.
This repository was archived by the owner on Jan 21, 2026. It is now read-only.

Problem with springboot java and jmxtrans-agent #111

Description

@maogouste

Hello,

I'm trying to add jmxtrans-agent to internal java with springboot application.

It's started with :

/opt/jdk1.8/bin/java -javaagent:/servers/jmxtrans-agent/jmxtrans-agent.jar=/servers/jmxtrans-agent/jmxtrans-agent.xml -Dinfluxdb_instance=dots-server_01 -Dorg.jmxtrans.agent.JmxTransAgent.diagnostic=true -Dorg.jmxtrans.agent.util.logging.Logger.level=TRACE -Djavax.net.ssl.trustStore=/etc/digiplug/cacerts -Djavax.net.ssl.trustStorePassword=changeit -jar /servers/dgpapps/dots/dots-server.jar --slot.id=01

It correctly generates some point and finishes with a stack :

sept. 19 16:27:56  java[79309]: 2017-09-19 16:27:56.965 WARNING [jmxtrans-agent-1] org.jmxtrans.agent.JmxTransExporter - Ignore exception flushing metrics
sept. 19 16:27:56  java[79309]: java.net.SocketTimeoutException: Connect timed out
sept. 19 16:27:56  java[79309]: at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:126)
sept. 19 16:27:56  java[79309]: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:502)
sept. 19 16:27:56  java[79309]: at java.net.Socket.connect(Socket.java:589)
sept. 19 16:27:56  java[79309]: at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
sept. 19 16:27:56  java[79309]: at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
sept. 19 16:27:56  java[79309]: at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
sept. 19 16:27:56  java[79309]: at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
sept. 19 16:27:56  java[79309]: at sun.net.www.http.HttpClient.New(HttpClient.java:339)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1209)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1157)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316)
sept. 19 16:27:56  java[79309]: at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.influxdb.InfluxDbOutputWriter.writeMetrics(InfluxDbOutputWriter.java:192)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.influxdb.InfluxDbOutputWriter.sendMetrics(InfluxDbOutputWriter.java:160)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.influxdb.InfluxDbOutputWriter.sendMetrics(InfluxDbOutputWriter.java:153)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.influxdb.InfluxDbOutputWriter.postCollect(InfluxDbOutputWriter.java:147)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.OutputWriterCircuitBreakerDecorator.postCollect(OutputWriterCircuitBreakerDecorator.java:124)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.OutputWritersChain.postCollect(OutputWritersChain.java:70)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.JmxTransExporter.collectAndExport(JmxTransExporter.java:214)
sept. 19 16:27:56  java[79309]: at org.jmxtrans.agent.JmxTransExporter$2.run(JmxTransExporter.java:131)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
sept. 19 16:27:56  java[79309]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
sept. 19 16:27:56  java[79309]: at java.lang.Thread.run(Thread.java:748)

My xml :

<?xml version="1.0" encoding="UTF-8"?>
<jmxtrans-agent>
    <queries>
        <query objectName="java.lang:type=Threading"               attributes="DaemonThreadCount,ThreadCount,PeakThreadCount" resultAlias="#attribute#" />
        <query objectName="java.lang:type=Runtime"                 attribute="Uptime"                                         resultAlias="Uptime" />
        <query objectName="java.lang:type=OperatingSystem"         attributes="OpenFileDescriptorCount,ProcessCpuTime"        resultAlias="#attribute#" />
        <query objectName="java.lang:type=ClassLoading"            attribute="LoadedClassCount"                               resultAlias="LoadedClassCount" />
        <query objectName="java.lang:type=Compilation"             attribute="TotalCompilationTime"                           resultAlias="TotalCompilationTime" />
        <query objectName="java.lang:type=GarbageCollector,name=*" attributes="CollectionCount,CollectionTime"                resultAlias="%name%.#attribute#" />
        <query objectName="java.lang:type=Memory"                  attributes="HeapMemoryUsage,NonHeapMemoryUsage"            resultAlias="#attribute#.#key#" />
        <query objectName="java.lang:type=MemoryPool,name=*"       attributes="Usage,PeakUsage"                               resultAlias="%name%.#attribute#.#key#" />

        <query objectName="Catalina:type=GlobalRequestProcessor,name=*" attributes="bytesReceived,bytesSent,requestCount,processingTime" resultAlias="%name%.#attribute#" />
        <query objectName="Catalina:type=RequestProcessor,name=*"       attributes="bytesReceived,bytesSent,requestCount,processingTime" resultAlias="%name%.#attribute#" />
        <query objectName="Catalina:type=ThreadPool,name=*"             attribute="currentThreadCount,currentThreadsBusy"                resultAlias="%name%.#attribute#" />
        <query objectName="Catalina:type=Manager,context=*,host=*" 	attribute="activeSessions"           				 resultAlias="activeSessions" />
    </queries>

    <outputWriter class="org.jmxtrans.agent.influxdb.InfluxDbOutputWriter">
        <url>http://xx.yy.zz.aa:8086</url>
        <database>java_db</database>
        <tags>host=#hostname#,instance=${influxdb_instance}</tags>
        <reloadConfigurationCheckIntervalInSeconds>60</reloadConfigurationCheckIntervalInSeconds>
        <connectTimeoutMillis>3000</connectTimeoutMillis>
        <readTimeoutMillis>5000</readTimeoutMillis>
    </outputWriter>

    <outputWriter class="org.jmxtrans.agent.ConsoleOutputWriter">
        <enabled>false</enabled>
    </outputWriter>

    <collectIntervalInSeconds>10</collectIntervalInSeconds>

</jmxtrans-agent>

On the same server, I have a logstash that export correctly with the same xml and jar. I can graph it.

I see the "Ignore exception flushing metrics" exception at https://github.com/jmxtrans/jmxtrans-agent/blob/master/src/main/java/org/jmxtrans/agent/JmxTransExporter.java

But, I have no idea what it may mean.

I tried to debug by myself, but couldn't progress further.

Gerard.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions