code: public boolean isMonitorable(Class<?> clazz) {
          // Faster(?) path
          if (notMonitorable.contains(clazz)) {
              return false;
          } else if (monitorable.contains(clazz)) {
              return true;
          }
  
          boolean isMonitorable = true;
          if (!instrumentation.isModifiableClass(clazz)) {
              isMonitorable = false;
          } else if (clazz.isInterface()) {
              isMonitorable = false;
          } else if (clazz.isArray()) {
              isMonitorable = false;
          } else if (Proxy.isProxyClass(clazz)) {
              isMonitorable = false;
          } else if (clazz.isPrimitive()) {
              isMonitorable = false;
          } else if (isExcludedClass(Type.getInternalName(clazz))) {
              isMonitorable = false;
          } else if (!includeBootstrap && clazz.getClassLoader() == null) {
              isMonitorable = false;
          }
  
          // Update collections
          if (!isMonitorable) {
              synchronized (notMonitorable) {
                  notMonitorable.add(clazz);
              }
          } else {
              monitorable.add(clazz);
          }
          return isMonitorable;
      }
docs: Determine of the specified class can be monitored via the probes
  infrastructure.
  
  @param clazz the monitoring candidate
  
  @return false if the class can't be monitored