public class DefaultSqlTracer extends DefaultTracer implements SqlTracer, java.lang.Comparable<DefaultSqlTracer>
BACKTRACE_PARAMETER_NAME, DEFAULT_TRACER_FLAGS, NULL_METRIC_NAME_FORMATTERATTRIBUTE_TYPEDATABASE_VENDOR_PARAMETER_NAME, EXPLAIN_PLAN_FORMAT_PARAMETER_NAME, EXPLAIN_PLAN_PARAMETER_NAME, SQL_OBFUSCATED_PARAMETER_NAME, SQL_PARAMETER_NAME| Constructor and Description |
|---|
DefaultSqlTracer(TransactionActivity txa,
ClassMethodSignature sig,
java.lang.Object object,
MetricNameFormat metricNameFormatter,
int tracerFlags) |
DefaultSqlTracer(TransactionActivity txa,
ClassMethodSignature sig,
java.lang.Object object,
MetricNameFormat metricNameFormatter,
int tracerFlags,
long pStartTime) |
DefaultSqlTracer(Transaction transaction,
ClassMethodSignature sig,
java.lang.Object object,
MetricNameFormat metricNameFormatter,
int tracerFlags) |
DefaultSqlTracer(Transaction transaction,
ClassMethodSignature sig,
java.lang.Object object,
MetricNameFormat metricNameFormatter,
int tracerFlags,
long time) |
| Modifier and Type | Method and Description |
|---|---|
int |
compareTo(DefaultSqlTracer otherTracer) |
protected ExplainPlanExecutor |
createExplainPlanExecutor(java.lang.String sql) |
protected void |
doFinish(int opcode,
java.lang.Object returnValue)
Subclasses may override.
|
protected void |
doFinish(java.lang.Throwable throwable)
Subclasses may override.
|
com.newrelic.agent.bridge.datastore.ConnectionFactory |
getConnectionFactory()
Returns a ConnectionFactory instance which can create a database connection on demand.
|
java.lang.String |
getDatabaseName() |
protected com.newrelic.agent.bridge.datastore.DatabaseVendor |
getDatabaseVendor() |
ExplainPlanExecutor |
getExplainPlanExecutor()
Return an executor class that can run explain plans for the given (Prepared)Statement.
|
java.lang.String |
getHost()
Returns the host of database instance used to run the query.
|
java.lang.String |
getIdentifier() |
java.lang.Object[] |
getParams()
Returns an Object array containing the parameters (in order) that were set on a PreparedStatement.
|
java.lang.Integer |
getPort()
Returns the port of database instance used to run the query.
|
java.lang.String |
getRawSql()
Returns the raw sql string that was used for a given query.
|
java.lang.Object |
getSql()
Returns the sql for the statement instrumented by this driver.
|
boolean |
hasExplainPlan()
Verify if this SqlTracer has an explain plan associated with it.
|
boolean |
isMetricProducer() |
static java.lang.String |
parameterizeSql(java.lang.String sql,
java.lang.Object[] parameters)
Substitute values from the parameter map in the SQL.
|
void |
provideConnection(java.sql.Connection conn)
Grab the host and port from the connection and store it on this tracer.
|
protected void |
recordMetrics(TransactionStats transactionStats)
Need to override this method to record Datastore metrics before the scoped metric name is recorded
|
void |
setConnectionFactory(com.newrelic.agent.bridge.datastore.ConnectionFactory connectionFactory)
Store a connection factory instance on this SqlTracer for later use.
|
void |
setDatabaseName(java.lang.String databaseName) |
void |
setExplainPlan(java.lang.Object... explainPlan) |
void |
setHost(java.lang.String host) |
void |
setIdentifier(java.lang.String identifier) |
void |
setParams(java.lang.Object[] params)
Store the parameters for this sql statement (must be in order).
|
void |
setPort(int port) |
void |
setRawSql(java.lang.String sql)
Store the raw sql string on this tracer.
|
protected boolean |
shouldStoreStackTrace() |
addOutboundRequestHeaders, childTracerFinished, childTracerFinished, doRecordMetrics, excludeLeaf, finish, finish, getChildCount, getClassMethodSignature, getDuration, getDurationInMilliseconds, getEndTime, getEndTimeInMilliseconds, getExclusiveDuration, getExternalParameters, getGuid, getInvocationTarget, getMetricName, getMetricNameFormat, getParentTracer, getRequestMetricName, getRunningDurationInNanos, getStartTime, getStartTimeInMillis, getStartTimeInMilliseconds, getTransactionSegment, getTransactionSegmentName, getTransactionSegmentUri, isAsync, isChildHasStackTrace, isLeaf, isParent, isTransactionSegment, performFinishWork, readInboundResponseHeaders, removeTransactionSegment, reportAsExternal, reportAsExternal, reset, setMetricName, setMetricNameFormat, setMetricNameFormatInfo, setParentTracer, storeStackTraceaddCustomAttribute, addCustomAttribute, addCustomAttribute, addCustomAttributes, addExclusiveRollupMetricName, addRollupMetricName, getAgentAttribute, getAgentAttributeNamesForSpans, getAgentAttributes, getCustomAttribute, getCustomAttributes, getException, getExclusiveRollupMetricNames, getParentTracedMethod, getParentTracerWithSpan, getRollupMetricNames, getTransaction, getTransactionActivity, invoke, isTrackCallbackRunnable, markFinishTime, nameTransaction, removeAgentAttribute, setAgentAttribute, setAgentAttribute, setAttribute, setCustomMetricPrefix, setNoticedError, setRollupMetricNames, setThrownException, setTrackCallbackRunnable, setTrackChildThreads, trackChildThreads, wasExceptionSetByAPIclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetTransactionchildTracerFinished, getAgentAttribute, getAgentAttributeNamesForSpans, getAgentAttributes, getChildCount, getClassMethodSignature, getCustomAttributes, getEndTime, getEndTimeInMilliseconds, getExclusiveDuration, getExternalParameters, getGuid, getMetricName, getParentTracer, getRunningDurationInNanos, getStartTime, getStartTimeInMillis, getStartTimeInMilliseconds, getTransactionActivity, getTransactionSegment, getTransactionSegmentName, getTransactionSegmentUri, isAsync, isChildHasStackTrace, isLeaf, isParent, isTransactionSegment, markFinishTime, removeAgentAttribute, removeTransactionSegment, setAgentAttribute, setAgentAttribute, setParentTracergetDuration, getDurationInMillisecondsaddExclusiveRollupMetricName, addOutboundRequestHeaders, excludeLeaf, getParentTracedMethod, isTrackCallbackRunnable, nameTransaction, readInboundResponseHeaders, reportAsExternal, setCustomMetricPrefix, setMetricNameFormatInfo, setRollupMetricNames, setTrackCallbackRunnable, setTrackChildThreads, trackChildThreadsaddRollupMetricName, reportAsExternal, setMetricNameaddCustomAttribute, addCustomAttribute, addCustomAttribute, addCustomAttributesgetException, setNoticedError, setThrownException, wasExceptionSetByAPIpublic DefaultSqlTracer(Transaction transaction, ClassMethodSignature sig, java.lang.Object object, MetricNameFormat metricNameFormatter, int tracerFlags)
public DefaultSqlTracer(Transaction transaction, ClassMethodSignature sig, java.lang.Object object, MetricNameFormat metricNameFormatter, int tracerFlags, long time)
public DefaultSqlTracer(TransactionActivity txa, ClassMethodSignature sig, java.lang.Object object, MetricNameFormat metricNameFormatter, int tracerFlags)
public DefaultSqlTracer(TransactionActivity txa, ClassMethodSignature sig, java.lang.Object object, MetricNameFormat metricNameFormatter, int tracerFlags, long pStartTime)
public com.newrelic.agent.bridge.datastore.ConnectionFactory getConnectionFactory()
SqlTracergetConnectionFactory in interface SqlTracerpublic void setConnectionFactory(com.newrelic.agent.bridge.datastore.ConnectionFactory connectionFactory)
SqlTracerNoticeSqlVisitorsetConnectionFactory in interface SqlTracerconnectionFactory - The ConnectionFactory instance to storepublic void setHost(java.lang.String host)
public void setPort(int port)
public java.lang.String getRawSql()
SqlTracerpublic void provideConnection(java.sql.Connection conn)
SqlTracerprovideConnection in interface SqlTracerconn - the connection instance to grab frompublic java.lang.String getHost()
SqlTracerpublic java.lang.Integer getPort()
SqlTracerpublic void setRawSql(java.lang.String sql)
SqlTracerNoticeSqlVisitorpublic java.lang.Object[] getParams()
SqlTracerpublic void setParams(java.lang.Object[] params)
SqlTracerNoticeSqlVisitorprotected com.newrelic.agent.bridge.datastore.DatabaseVendor getDatabaseVendor()
protected void doFinish(java.lang.Throwable throwable)
DefaultTracerdoFinish in class DefaultTracerprotected void doFinish(int opcode,
java.lang.Object returnValue)
DefaultTracerdoFinish in class DefaultTracerprotected boolean shouldStoreStackTrace()
shouldStoreStackTrace in class DefaultTracerpublic boolean isMetricProducer()
isMetricProducer in class DefaultTracerprotected void recordMetrics(TransactionStats transactionStats)
recordMetrics in class DefaultTracerpublic java.lang.Object getSql()
getSql in interface SqlTracerExplainInfoJSONAware instance.public boolean hasExplainPlan()
SqlTracerExplainInfohasExplainPlan in interface SqlTracerExplainInfopublic ExplainPlanExecutor getExplainPlanExecutor()
SqlTracerExplainInfogetExplainPlanExecutor in interface SqlTracerExplainInfoprotected ExplainPlanExecutor createExplainPlanExecutor(java.lang.String sql)
public void setExplainPlan(java.lang.Object... explainPlan)
setExplainPlan in interface SqlTracerExplainInfopublic int compareTo(DefaultSqlTracer otherTracer)
compareTo in interface java.lang.Comparable<DefaultSqlTracer>public void setIdentifier(java.lang.String identifier)
public java.lang.String getIdentifier()
public void setDatabaseName(java.lang.String databaseName)
public java.lang.String getDatabaseName()
public static java.lang.String parameterizeSql(java.lang.String sql,
java.lang.Object[] parameters)
throws java.lang.Exception
sql - the SQLparameters - the parameter mapjava.lang.Exception