@Override
    public void before(Object target, Object[] args) {

        if (isDebug) {
            logger.beforeInterceptor(target, args);
        }
        final AsyncContext asyncContext = AsyncContextAccessorUtils.getAsyncContext(args, 0);
        if (asyncContext == null) {
            if (logger.isDebugEnabled()) {
                // (LogMarkerToken)args[2]
                Object logMarkerToken = ArrayArgumentUtils.getArgument(args, 2, Object.class);
                logger.debug("Not found asynchronous invocation metadata {}", logMarkerToken);
            }
            return;
        }

        final Trace trace = asyncContext.continueAsyncTraceObject();
        if (trace == null) {
            logger.debug("trace object null");
            return;
        }

        try {
            trace.traceBlockBegin();
        } catch (Throwable th) {
            if (logger.isWarnEnabled()) {
                logger.warn("BEFORE. Caused:{}", th.getMessage(), th);
            }
        }
    }
@param target
@param args TransactionMetadata, Identify, LogMarkerToken
agent-module/plugins/openwhisk/src/main/java/com/navercorp/pinpoint/plugin/openwhisk/interceptor/TransactionIdStartedInterceptor.java