@Around("execution(@ConfigureAgentStackTraceInitialDelayMillis void org.jmonitor..*Test.*())")
  public void aroundConfigureAgentStackTraceInitialDelayMillisPointcut(
      ProceedingJoinPoint joinPoint) throws Throwable {

    ConfigureAgentStackTraceInitialDelayMillis annotation =
        getAnnotation(ConfigureAgentStackTraceInitialDelayMillis.class, joinPoint);
    AgentConfigurationImpl mutableConfiguration = getMutableAgentConfiguration();
    int previousValue = mutableConfiguration.getStackTraceInitialDelayMillis();
    // set it to annotated value
    mutableConfiguration.setStackTraceInitialDelayMillis(annotation.value());
    ConfigurationServiceImpl.getInstance().updateAgentConfiguration(mutableConfiguration);
    try {
      joinPoint.proceed();
    } finally {
      // set it back to original value
      mutableConfiguration.setStackTraceInitialDelayMillis(previousValue);
      ConfigurationServiceImpl.getInstance().updateAgentConfiguration(mutableConfiguration);
    }
  }