Class AbstractQueryReport

    • Field Detail

      • threshold

        protected long threshold
        The threshold in milliseconds. If the query is faster than this, we don't measure it
    • Constructor Detail

      • AbstractQueryReport

        public AbstractQueryReport()
    • Method Detail

      • prepareStatement

        protected abstract void prepareStatement​(java.lang.String sql,
                                                 long time)
        Invoked when prepareStatement has been called and completed.
        Parameters:
        sql - - the string used to prepare the statement with
        time - - the time it took to invoke prepare
      • prepareCall

        protected abstract void prepareCall​(java.lang.String query,
                                            long time)
        Invoked when prepareCall has been called and completed.
        Parameters:
        query - - the string used to prepare the statement with
        time - - the time it took to invoke prepare
      • reportFailedQuery

        protected java.lang.String reportFailedQuery​(java.lang.String query,
                                                     java.lang.Object[] args,
                                                     java.lang.String name,
                                                     long start,
                                                     java.lang.Throwable t)
        Invoked when a query execution, a call to execute/executeQuery or executeBatch failed.
        Parameters:
        query - the query that was executed and failed
        args - the arguments to the execution
        name - the name of the method used to execute AbstractCreateStatementInterceptor.isExecute(Method, boolean)
        start - the time the query execution started
        t - the exception that happened
        Returns:
        - the SQL that was executed or the string "batch" if it was a batch execution
      • reportQuery

        protected java.lang.String reportQuery​(java.lang.String query,
                                               java.lang.Object[] args,
                                               java.lang.String name,
                                               long start,
                                               long delta)
        Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was within the timing threshold
        Parameters:
        query - the query that was executed and failed
        args - the arguments to the execution
        name - the name of the method used to execute AbstractCreateStatementInterceptor.isExecute(Method, boolean)
        start - the time the query execution started
        delta - the time the execution took
        Returns:
        - the SQL that was executed or the string "batch" if it was a batch execution
      • reportSlowQuery

        protected java.lang.String reportSlowQuery​(java.lang.String query,
                                                   java.lang.Object[] args,
                                                   java.lang.String name,
                                                   long start,
                                                   long delta)
        Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was exceeded the timing threshold
        Parameters:
        query - the query that was executed and failed
        args - the arguments to the execution
        name - the name of the method used to execute AbstractCreateStatementInterceptor.isExecute(Method, boolean)
        start - the time the query execution started
        delta - the time the execution took
        Returns:
        - the SQL that was executed or the string "batch" if it was a batch execution
      • getThreshold

        public long getThreshold()
        returns the query measure threshold. This value is in milliseconds. If the query is faster than this threshold than it won't be accounted for
        Returns:
        the threshold in milliseconds
      • setThreshold

        public void setThreshold​(long threshold)
        Sets the query measurement threshold. The value is in milliseconds. If the query goes faster than this threshold it will not be recorded.
        Parameters:
        threshold - set to -1 to record every query. Value is in milliseconds.
      • createStatement

        public java.lang.Object createStatement​(java.lang.Object proxy,
                                                java.lang.reflect.Method method,
                                                java.lang.Object[] args,
                                                java.lang.Object statement,
                                                long time)
        Creates a statement interceptor to monitor query response times
        Specified by:
        createStatement in class AbstractCreateStatementInterceptor
        Parameters:
        proxy - the actual proxy object
        method - the method that was called. It will be one of the methods defined in AbstractCreateStatementInterceptor.STATEMENT_TYPES
        args - the arguments to the method
        statement - the statement that the underlying connection created
        time - Elapsed time
        Returns:
        a Statement object