public class TomcatJdbcInterceptor extends org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport
Example usage:
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
jdbcInterceptors="nl.nlighten.prometheus.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05,|.1|1|10,slowQueryBuckets=1|10|30)"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
Configuration options are as shown above an have the following meaning:
- logFailed: if set to 'true' provide metrics on failed queries
- logSlow: if set to 'true' provide metrics on metrics exceeding threshold
- threshold: the threshold in ms above which metrics will be provided if logSlow=true
- buckets: the buckets separated by a pipe ("|") symbol to be used for the global query response times, defaults to .01|.05|.1|.25|.5|1|2.5|10
- slowQueryBuckets: the buckets separated by a pipe ("|") symbol to be used for the global query response times, defaults to 1|2.5|10|30
NOTE: enabling logFailed and logSlow may lead to a lot of additional metrics., so be careful !!!
Example metrics being exported:
tomcat_jdbc_query_seconds_bucket{le="0.005",} 48950.0
.....
tomcat_jdbc_query_seconds_bucket{le="+Inf",} 301.0
tomcat_jdbc_query_seconds_count 353501.0
tomcat_jdbc_query_seconds_sum 331875.0
tomcat_jdbc_slowquery_seconds{query="SELECT 1 from DUAL", }
| Modifier and Type | Field and Description |
|---|---|
static String |
FAILED_QUERY_STATUS |
static String |
SUCCESS_QUERY_STATUS |
constructors, CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_QUERY, EXECUTE_TYPES, EXECUTE_UPDATE, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPES| Constructor and Description |
|---|
TomcatJdbcInterceptor() |
| Modifier and Type | Method and Description |
|---|---|
void |
closeInvoked() |
void |
poolClosed(org.apache.tomcat.jdbc.pool.ConnectionPool pool) |
void |
poolStarted(org.apache.tomcat.jdbc.pool.ConnectionPool pool) |
void |
prepareCall(String sql,
long time) |
void |
prepareStatement(String sql,
long time) |
protected String |
reportFailedQuery(String query,
Object[] args,
String name,
long start,
Throwable t) |
protected String |
reportQuery(String query,
Object[] args,
String name,
long start,
long delta) |
protected String |
reportSlowQuery(String query,
Object[] args,
String name,
long start,
long delta) |
void |
reset(org.apache.tomcat.jdbc.pool.ConnectionPool parent,
org.apache.tomcat.jdbc.pool.PooledConnection con) |
void |
setProperties(Map<String,org.apache.tomcat.jdbc.pool.PoolProperties.InterceptorProperty> properties) |
createStatement, getThreshold, setThresholdgetConstructor, invoke, isExecute, isStatement, processpublic static final String SUCCESS_QUERY_STATUS
public static final String FAILED_QUERY_STATUS
public TomcatJdbcInterceptor()
public void setProperties(Map<String,org.apache.tomcat.jdbc.pool.PoolProperties.InterceptorProperty> properties)
setProperties in class org.apache.tomcat.jdbc.pool.JdbcInterceptorprotected String reportFailedQuery(String query, Object[] args, String name, long start, Throwable t)
reportFailedQuery in class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReportprotected String reportQuery(String query, Object[] args, String name, long start, long delta)
reportQuery in class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReportprotected String reportSlowQuery(String query, Object[] args, String name, long start, long delta)
reportSlowQuery in class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReportpublic void closeInvoked()
closeInvoked in class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptorpublic void prepareStatement(String sql, long time)
prepareStatement in class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReportpublic void prepareCall(String sql, long time)
prepareCall in class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReportpublic void poolStarted(org.apache.tomcat.jdbc.pool.ConnectionPool pool)
poolStarted in class org.apache.tomcat.jdbc.pool.JdbcInterceptorpublic void poolClosed(org.apache.tomcat.jdbc.pool.ConnectionPool pool)
poolClosed in class org.apache.tomcat.jdbc.pool.JdbcInterceptorpublic void reset(org.apache.tomcat.jdbc.pool.ConnectionPool parent, org.apache.tomcat.jdbc.pool.PooledConnection con)
reset in class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptorCopyright © 2018. All Rights Reserved.