public void beforeMethod()

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());
            }
        }

    }