JDK itself contains quite a lot of platform MBean which get registered "on demand". Graal compiler (just like classical ones) provides its own MBean(s) - however there is no way to register it "on demand".
The current solution is using a reflection check to find out if the MX bean subsystem is initialized and if so, register programmatically. See:
https://github.com/graalvm/graal/blob/f464ee3b105470b13050e080c9f119bd5f524f9c/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalMBean.java#L88
This has two drawbacks: the Graal MBean is registered with a delay and the approach doesn't really work on JDK9.
JDK9 already contains support for collecting platform MBeans from various modules. We just need to expose it to JVMCI compiler.