public synchronized void init(String prefix) {
        if (monitoring) {
            LOG.warn(this.prefix + " metrics system already initialized!");
            return;
        }
        this.prefix = Contracts.checkNotNull(prefix, "prefix");
        try {
            start();
        } catch (MetricsConfigException e) {
            // Usually because hadoop-metrics2.properties is missing
            // We can always start the metrics system later via JMX.
            LOG.warn("Metrics system not started: " + e.getMessage());
            LOG.debug("Stacktrace: ", e);
        }
        initSystemMBean();
    }