Github user lvfangmin commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/601#discussion_r212528161 --- Diff: src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java --- @@ -141,6 +145,16 @@ public void runFromConfig(QuorumPeerConfig config) LOG.info("Starting quorum peer"); try { + MetricsProvider metricsProvider; + try { + metricsProvider = MetricsProviderBootstrap + .startMetricsProvider(config.metricsProviderClassName, new Properties()); + } catch (MetricsProviderLifeCycleException error) { + LOG.error("Cannot boot MetricsProvider {}", config.metricsProviderClassName, error); + throw new IOException("Cannot boot MetricsProvider " + config.metricsProviderClassName, --- End diff -- What kind of failure will cause this IOException to throw, will the external dependency failure cause the ZK not to start up? If so I don't think that's a good idea, services like ZK should have no critical external dependency, if the external service failed we should still able to start ZK service.
---