in disco-java-agent-sql/src/main/java/software/amazon/disco/agent/sql/JdbcExecuteInterceptor.java [67:93]
public static ServiceRequestEvent enter(@Advice.AllArguments final Object[] args,
@Advice.Origin final String origin,
@Advice.This final Statement stmt) {
if (LogManager.isDebugEnabled()) {
log.debug("DiSCo(Sql) interception of " + origin);
}
String query = null;
String db = null;
try {
query = parseQueryFromStatement(stmt, args);
} catch (Exception e) {
log.warn("Disco(Sql) failed to retrieve query string for SQL Downstream Service event", e);
}
try {
db = stmt.getConnection().getCatalog();
} catch (Exception e) {
log.warn("Disco(Sql) failed to retrieve Database name for SQL Downstream Service event", e);
}
// TODO: Consider replacing Statement Request object with a serializable object containing only relevant metadata
ServiceRequestEvent requestEvent = new ServiceDownstreamRequestEvent(SQL_ORIGIN, db, query)
.withRequest(stmt);
EventBus.publish(requestEvent);
return requestEvent;
}