code: protected String getMonitorName(MethodInvocation methodInvocation) {
  		Class<?> targetClass = getTargetClass(methodInvocation);
  		Method targetMethod = getTargetMethod(methodInvocation, targetClass);
  
  		Monitored methodAnnotation = AnnotationUtils.findAnnotation(targetMethod, Monitored.class);
  		if (methodAnnotation != null && methodAnnotation.name() != null && methodAnnotation.name().length() > 0) {
  			return methodAnnotation.name();
  		}
  
  		StringBuilder nameBuilder = new StringBuilder();
  		Monitored classAnnotation = AnnotationUtils.findAnnotation(targetClass, Monitored.class);
  		if (classAnnotation != null && classAnnotation.name() != null && classAnnotation.name().length() > 0) {
  			nameBuilder.append(classAnnotation.name());
  		} else {
  			nameBuilder.append(getMeaningfulClassName(targetClass));
  		}
  		nameBuilder.append(Manager.HIERARCHY_DELIMITER);
  
  		String suffix = targetMethod.getName();
  		if (methodAnnotation != null && methodAnnotation.suffix() != null && methodAnnotation.suffix().length() > 0) {
  			suffix = methodAnnotation.suffix();
  		}
  		return nameBuilder.append(suffix).toString();
  	}
docs: Returns monitor name for the given method invocation with {@link org.javasimon.aop.Monitored#name()}
  and {@link org.javasimon.aop.Monitored#suffix()} applied as expected.
  
  @param methodInvocation current method invocation
  @return name of the Stopwatch for the invocation