final String eventValue = event.value();
final String eventOperation = event.operation();
final String name = eventValue.isEmpty() ? pjp.getTarget().getClass().getSimpleName() : eventValue;
final String operation = eventOperation.isEmpty() ? pjp.getSignature().getName() : eventOperation;
final KPITimer timer = new KPITimer();
timer.start();
final PerformanceMonitoringExecutionObserver perfObserver =
new PerformanceMonitoringExecutionObserver(observer, monitor, timer,
event.catchFailures(), name, operation);
return pjp.proceed(replaceObserver(perfObserver, pjp.getArgs()));