/** * Initialize connector instance using the provided instrumentation. * * @param inst Instrumentation reference * @param queryReporter QueryReporter implementation reference * @param configuration Connector configuration * @param globalConfiguration global configuration general for diagnostics */ public void init(Instrumentation inst, QueryReporter queryReporter, ConnectorConfiguration configuration, GlobalConfiguration globalConfiguration) { executeStatementWrapper = new ExecuteStatementWrapper(queryReporter, configuration, globalConfiguration); setIntercepters(inst); }
/** * Wrapper for session manager execute async method. * This method wraps the original method and, in addition, measures the statement * execution time and reports the query towards the diagnostics core. * * @param statement Statement * @param startTime execution start time * @param result execution's result future */ public void processStatement(final Statement statement, long startTime, ResultSetFuture result) { report(startTime, statement, result); }
/** * Returns the default configuration. * @return default configuration */ public static ConnectorConfiguration getDefault() { return new ConnectorConfiguration(); }
/** * Initialize connector instance using the provided instrumentation. * * @param inst Instrumentation reference * @param queryReporter QueryReporter implementation reference * @param configuration connector specific configuration * @param globalConfiguration global configuration general for diagnostics */ public void init(Instrumentation inst, QueryReporter queryReporter, ConnectorConfiguration configuration, GlobalConfiguration globalConfiguration) { ConnectorImpl.configuration = configuration; ConnectorImpl.globalConfiguration = globalConfiguration; queryProcessorWrapper = new QueryProcessorWrapper(queryReporter, configuration); setQueryProcessorIntercepter(inst); setCassandraDaemonIntercepter(inst); }
private Query createQuery(final long startTime, final long execTime, final String queryString, final CQLStatement statement, final QueryState queryState, final QueryOptions options) { Query query; if (statement instanceof SelectStatement) { query = createQuery(startTime, execTime, queryString, (SelectStatement) statement, queryState, options); } else if (statement instanceof ModificationStatement) { query = createQuery(startTime, execTime, queryString, (ModificationStatement) statement, queryState, options); } else { query = createGenericQuery(startTime, execTime, queryString, statement, queryState, options); } return query; }
/** * Code executed after the CassandraDaemon#completeSetup method. */ @Advice.OnMethodExit public static void exit() { ConnectorImpl.cassandraSetupComplete(); } }
/** * Wrapper for * {@link org.apache.cassandra.cql3.QueryProcessor#process(String, QueryState, QueryOptions)} method. * This method is invoked after the original method, measures the execution time and reports query. * * @param queryString QueryProcessor#process(String, QueryState, QueryOptions) * @param queryState QueryProcessor#process(String, QueryState, QueryOptions) * @param options QueryProcessor#process(String, QueryState, QueryOptions) * @param startTime query execution start time * @param result statement execution result */ public void process(String queryString, QueryState queryState, QueryOptions options, long startTime, ResultMessage result) { final long execTime = System.currentTimeMillis() - startTime; report(startTime, execTime, queryString, null, queryState, options, null); }
/** * Code executed after the intercepted method. * * @param startTime execution start time recorded by the enter method. * @param statement CQL statement to be executed * @param result CQL result future */ @Advice.OnMethodExit public static void exit(@Advice.Enter long startTime, @Advice.Argument(0) Statement statement, @Advice.Return ResultSetFuture result) { ConnectorImpl.executeStatementWrapper().processStatement(statement, startTime, result); } }
/** * Get connector instance. * * @return Connector instance */ public static InfoProvider getInfoProvider() { return connector.getInfoProvider(); } }
private String statementQueryString(final Statement statement) { String query; if (statement instanceof RegularStatement) { query = statementQueryString((RegularStatement) statement); } else if (statement instanceof BoundStatement) { query = statementQueryString((BoundStatement) statement); } else if (statement instanceof BatchStatement) { query = statementQueryString((BatchStatement) statement); } else { query = "unknown;"; } return query; }
@Override public void run() { connector.waitForSetupCompleted(); diagnostics.activate(); logger.info("Cassandra Diagnostics initialized."); } });
/** * Initialize connector instance using the provided instrumentation. * * @param inst Instrumentation reference * @param queryReporter QueryReporter implementation reference * @param configuration connector specific configuration * @param globalConfiguration global configuration general for diagnostics */ public void init(Instrumentation inst, QueryReporter queryReporter, ConnectorConfiguration configuration, GlobalConfiguration globalConfiguration) { ConnectorImpl.configuration = configuration; ConnectorImpl.globalConfiguration = globalConfiguration; queryProcessorWrapper = new QueryProcessorWrapper(queryReporter, configuration); setQueryProcessorIntercepter(inst); setCassandraDaemonIntercepter(inst); }
private Query createQuery(final long startTime, final long execTime, final String queryString, final CQLStatement statement, final QueryState queryState, final QueryOptions options) { Query query; if (statement instanceof SelectStatement) { query = createQuery(startTime, execTime, queryString, (SelectStatement) statement, queryState, options); } else if (statement instanceof ModificationStatement) { query = createQuery(startTime, execTime, queryString, (ModificationStatement) statement, queryState, options); } else { query = createGenericQuery(startTime, execTime, queryString, statement, queryState, options); } return query; }
/** * Code executed after the CassandraDaemon#completeSetup method. */ @Advice.OnMethodExit public static void exit() { ConnectorImpl.cassandraSetupComplete(); } }
/** * Initialize connector instance using the provided instrumentation. * * @param inst Instrumentation reference * @param queryReporter QueryReporter implementation reference * @param configuration connector specific configuration * @param globalConfiguration global configuration general for diagnostics */ public void init(Instrumentation inst, QueryReporter queryReporter, ConnectorConfiguration configuration, GlobalConfiguration globalConfiguration) { ConnectorImpl.configuration = configuration; ConnectorImpl.globalConfiguration = globalConfiguration; queryProcessorWrapper = new QueryProcessorWrapper(queryReporter, configuration); setQueryProcessorIntercepter(inst); setCassandraDaemonIntercepter(inst); }
private Query createQuery(final long startTime, final long execTime, final String queryString, final CQLStatement statement, final QueryState queryState, final QueryOptions options) { Query query; if (statement instanceof SelectStatement) { query = createQuery(startTime, execTime, queryString, (SelectStatement) statement, queryState, options); } else if (statement instanceof ModificationStatement) { query = createQuery(startTime, execTime, queryString, (ModificationStatement) statement, queryState, options); } else { query = createGenericQuery(startTime, execTime, queryString, statement, queryState, options); } return query; }
/** * Code executed after the CassandraDaemon#completeSetup method. */ @Advice.OnMethodExit public static void exit() { ConnectorImpl.cassandraSetupComplete(); } }
/** * Initialize connector instance using the provided instrumentation. * * @param inst Instrumentation reference * @param queryReporter QueryReporter implementation reference * @param configuration connector specific configuration * @param globalConfiguration global configuration general for diagnostics */ public void init(Instrumentation inst, QueryReporter queryReporter, ConnectorConfiguration configuration, GlobalConfiguration globalConfiguration) { ConnectorImpl.configuration = configuration; ConnectorImpl.globalConfiguration = globalConfiguration; queryProcessorWrapper = new QueryProcessorWrapper(queryReporter, configuration); setQueryProcessorIntercepter(inst); setCassandraDaemonIntercepter(inst); }
private Query createQuery(final long startTime, final long execTime, final String queryString, final CQLStatement statement, final QueryState queryState, final QueryOptions options) { Query query; if (statement instanceof SelectStatement) { query = createQuery(startTime, execTime, queryString, (SelectStatement) statement, queryState, options); } else if (statement instanceof ModificationStatement) { query = createQuery(startTime, execTime, queryString, (ModificationStatement) statement, queryState, options); } else { query = createGenericQuery(startTime, execTime, queryString, statement, queryState, options); } return query; }
/** * Code executed after the CassandraDaemon#completeSetup method. */ @Advice.OnMethodExit public static void exit() { ConnectorImpl.cassandraSetupComplete(); } }