@Around("allComponentsThatAreWebflowExecutors()")
        public Object aroundWebflowOperations(final ProceedingJoinPoint joinPoint) throws Throwable {
            val flowId = joinPoint.getArgs()[0].toString();
            val externalContext = (ExternalContext) joinPoint.getArgs()[2];
            val httpRequest = (HttpServletRequest) externalContext.getNativeRequest();
            httpRequest.setAttribute("observingWebflowId", flowId);
            val taskName = joinPoint.getSignature().getDeclaringTypeName() + '.' + flowId;
            return ExecutableObserver.observe(observerProvider, joinPoint, task -> task
                .withName(taskName)
                .withBoundedValue("flowId", flowId)
                .withBoundedValue("url", WebUtils.getHttpRequestFullUrl(httpRequest)));
        }
This is {@link CasWebflowMonitoringConfiguration}.

@author Misagh Moayyed
@since 7.0.0
core/cas-server-core-webflow/src/main/java/org/apereo/cas/config/CasWebflowMonitoringConfiguration.java