Closed Josef-Reichardt closed 7 years ago
What do you mean by "jdbc metrics"? The JDBC dashboard? Since stagemonitor 0.26.0 the jdbc metrics are inside the External Requests dashboard. Which connection pool library are you using? C3p0?
You don't need -javaagent
if you are running your application on a JDK and you don't have to call Stagemonitor.init()
when using stagemonitor-web
. I didn't know about the classloader leak prevention lib so I don't know if there are conflicts, but I don't think so.
Thanks for your fast reply. :+1:
I'm using the "In Browser Widget" and I've opened /stagemonitor
in one browser window and my application in another one. On the "Metrics" / "Requests" tab I can see the requests in real time:
but the jdbc tab looks like this:
(and yes, there are requests which do some database queries and they are also listed under "Requests" ;) )
I'm using a com.mchange.v2.c3p0.ComboPooledDataSource
.
Any logs containing org.stagemonitor.jdbc.DefaultConnectionMonitoringTransformer
?
Not exactly.
But with the simple class name DefaultConnectionMonitoringTransformer
i've fond the following:
2016-06-30T10:32:03,178 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.core.instrument.AgentAttacher: Registering DefaultConnectionMonitoringTransformer
2016-06-30T10:32:03,178 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.core.instrument.AgentAttacher: Registering DefaultConnectionMonitoringTransformer
2016-06-30T10:32:03,626 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.logging.log4j.core.appender.db.jdbc.DataSourceConnectionSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:03,626 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.logging.log4j.core.appender.db.jdbc.DataSourceConnectionSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,756 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.PooledDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,756 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.PooledDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,756 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,756 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,757 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,757 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,822 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.management.DynamicPooledDataSourceManagerMBean in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,822 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.management.DynamicPooledDataSourceManagerMBean in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,831 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.management.DynamicPooledDataSourceManagerMBean$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,831 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.management.DynamicPooledDataSourceManagerMBean$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,850 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,850 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,851 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.DriverManagerDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,851 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.DriverManagerDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,853 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.DriverManagerDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,853 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.DriverManagerDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,857 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.DriverManagerDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,857 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.DriverManagerDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,858 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.WrapperConnectionPoolDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,858 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.WrapperConnectionPoolDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,859 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.WrapperConnectionPoolDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,859 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.impl.WrapperConnectionPoolDataSourceBase in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,865 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.WrapperConnectionPoolDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,865 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.WrapperConnectionPoolDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,866 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.ComboPooledDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,866 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.ComboPooledDataSource$1 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,867 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.ComboPooledDataSource$2 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:19,867 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.mchange.v2.c3p0.ComboPooledDataSource$2 in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,829 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.DataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,829 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.DataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,838 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,838 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,839 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,839 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,841 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.SingleDataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:33,841 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.lookup.SingleDataSourceLookup in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:49,524 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.googlecode.mp4parser.DataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:49,524 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE com.googlecode.mp4parser.DataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:50,151 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:50,151 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:50,152 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DelegatingDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:50,152 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DelegatingDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,440 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,440 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,444 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DataSourceUtils in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,444 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DataSourceUtils in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,448 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.SmartDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,448 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.SmartDataSource in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,605 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.jndi.JndiDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,605 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.jndi.JndiDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,606 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.DataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,606 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.DataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,607 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.pooled.PooledDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,607 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.pooled.PooledDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,607 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:55,607 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:57,228 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DataSourceUtils$ConnectionSynchronization in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:57,228 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.springframework.jdbc.datasource.DataSourceUtils$ConnectionSynchronization in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:58,197 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.jboss.resteasy.plugins.providers.DataSourceProvider in DefaultConnectionMonitoringTransformer
2016-06-30T10:32:58,197 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: IGNORE org.jboss.resteasy.plugins.providers.DataSourceProvider in DefaultConnectionMonitoringTransformer
(this log is not complete. this are only lines which contains DefaultConnectionMonitoringTransformer
)
Hm, ok. Any occurrence of TRANSFORM DataSource
?
Also, try debugging org/stagemonitor/jdbc/DefaultConnectionMonitoringTransformer.java:28
to see if this method gets called at all.
Yes there are TRANSFORM DataSource
logs:
2016-06-30T12:21:30,044 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: TRANSFORM DataSource com.mchange.v2.c3p0.ComboPooledDataSource (DefaultConnectionMonitoringTransformer)
2016-06-30T12:21:30,044 INFO [RMI TCP Connection(3)-127.0.0.1] org.stagemonitor.jdbc.ConnectionMonitoringTransformer: TRANSFORM DataSource com.mchange.v2.c3p0.ComboPooledDataSource (DefaultConnectionMonitoringTransformer)
The Function monitorGetConnection
(org/stagemonitor/jdbc/DefaultConnectionMonitoringTransformer.java:28
) gets not called.
I just confirmed, that jdbc monitoring currently does not work with c3p0. I'll fix that within the next few days probably. Sorry for that. If you want jdbc monitoring now, you could use tomcat-jdbc.
I've switched to a jndi resource just for testing purpose. Now I hava a org.apache.tomcat.jdbc.pool.DataSource
and I can see some values != 0 in the "SQLs/sec" column on the "Requests" tab but the "JDBC" tab is still empty.
You said you will fix the Problem with c3p0 in a few days. So I will just wait for this. Let me know if I can help with testing some snapshots. ;)
Thanks for your help. :+1:
Minor mistake in the configuration default values. Simply set
stagemonitor.instrument.jdbc.dataSource.implementations=com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource
With this (after switching back to the c3p0 data source) the monitorGetConnection
method gets called and again I get some values != 0 in the "SQLs/sec" column on the "Requests" tab but the "JDBC" tab is still empty. Sry.
What about the problem that every logger output is displayed twice. Is this anything else or could it be possible that it is related to the current problem?
Thanks again for your feedback.
Are the SQL queries displayed in the call tree tab? Could you debug this method to see whether executed by is set correctly: https://github.com/stagemonitor/stagemonitor/blob/0.27.0/stagemonitor-requestmonitor/src/main/java/org/stagemonitor/requestmonitor/RequestMonitor.java#L566
That may be a logging misconfiguration. Which logging implementation and slf4j binding are you using? I don't think this is related to the JDBC tab being empty.
Nevermind, I've found the problem. I fixed this in a branch but forgot to cherry pick into master. Sorry for the trouble and thank you very much for reporting! I'll give you a heads up as soon as I have released 0.27.1 (probably today)
Version 0.27.1
is released. Sorry for the delay, I wanted to include fixes for some memory leaks in this release as well.
Thank you, now it works perfectly! :+1:
I'm trying to "install" Stagemonitor in our application and it looks very promising but the jdbc metrics are empty. Everything else like Requests and so on seems to be working.
I enabled logging for
org.stagemonitor
and I see that everithing is logged twice. For example:And then there are some logs and a warning (which are also logged twice) related to the jdbc plugin:
and
What I have done is to add the Depandency in
pom.xml
:And created the
stagemonitor.properties
:I've played around with the
-javaagent
VM argument and the custom initialization (Stagemonitor.init()
) inside of aorg.springframework.web.WebApplicationInitializer#onStartup
method without success. So I've removed these two things because I'm thinking they are not neccessary. Is this correct?It's a very large application which usese Spring, Hibernate and many other libraries and frameworks. I don't know which are relevant and which not... We are also using the Classloader Leak Prevention library, but I have temorary removed it to test Stagemonitor. Are there any known conflicts between these two libraries? I've startet the application in debug mode inside of IntelliJ IDEA 2016.1.3 on Tomcat 8.0.20 and I'm using JDK 1.8.0_45 on Windows 8.1.
I don't know if there are any informations i've missed but I hope someone can help me because I think Stagemonitor is a great tool and I will by very happy if I can integrate it in our application. :) Thanks in advance!