in apm-sniffer/apm-sdk-plugin/influxdb-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/influxdb/interceptor/InfluxDBMethodInterceptor.java [41:83]
public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
MethodInterceptResult result) throws Throwable {
String methodName = method.getName();
String peer = String.valueOf(objInst.getSkyWalkingDynamicField());
AbstractSpan span = ContextManager.createExitSpan("InfluxDB/" + methodName, peer);
span.setComponent(ComponentsDefine.INFLUXDB_JAVA);
SpanLayer.asDB(span);
Tags.DB_TYPE.set(span, DB_TYPE);
if (allArguments.length <= 0 || !InfluxDBPluginConfig.Plugin.InfluxDB.TRACE_INFLUXQL) {
return;
}
if (allArguments[0] instanceof Query) {
Query query = (Query) allArguments[0];
Tags.DB_INSTANCE.set(span, query.getDatabase());
Tags.DB_STATEMENT.set(span, query.getCommand());
return;
}
if (Constants.WRITE_METHOD.equals(methodName)) {
if (allArguments[0] instanceof BatchPoints) {
BatchPoints batchPoints = (BatchPoints) allArguments[0];
Tags.DB_INSTANCE.set(span, batchPoints.getDatabase());
Tags.DB_STATEMENT.set(span, batchPoints.lineProtocol());
return;
}
if (allArguments.length == 5) {
if (allArguments[0] instanceof String) {
Tags.DB_INSTANCE.set(span, (String) allArguments[0]);
}
if (allArguments[4] instanceof String) {
Tags.DB_STATEMENT.set(span, (String) allArguments[4]);
}
return;
}
if (allArguments.length == 3 && allArguments[2] instanceof Point) {
Tags.DB_INSTANCE.set(span, (String) allArguments[0]);
Tags.DB_STATEMENT.set(span, ((Point) allArguments[2]).lineProtocol());
}
}
}