diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/ConsoleMetricReporter.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/ConsoleMetricReporter.java
index e10907e..f2a3eb6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/ConsoleMetricReporter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/ConsoleMetricReporter.java
@@ -14,13 +14,17 @@
 package com.googlesource.gerrit.plugins.cookbook;
 
 import com.google.gerrit.extensions.annotations.Listen;
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.events.LifecycleListener;
+import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 import com.codahale.metrics.ConsoleReporter;
 import com.codahale.metrics.MetricRegistry;
 
+import org.eclipse.jgit.lib.Config;
+
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -30,14 +34,31 @@
  * @see <a href="https://dropwizard.github.io/metrics/3.1.0/getting-started/#reporting-via-jmx">here</a>
  * @see <a href="https://dropwizard.github.io/metrics/3.1.0/getting-started/#reporting-via-http">here</a>
  * @see <a href="https://dropwizard.github.io/metrics/3.1.0/getting-started/#other-reporting">here</a>
+ *
+ * Also shows how to fetch plug-in specific configuration values.
+ * <@see com.google.gerrit.server.config.PluginConfigFactory>
+ *
+ * Enable by adding the file etc/cookbook.config:
+ *
+ *  [console-metrics]
+ *      enabled = true
+ *
  */
 @Listen
 @Singleton
 public class ConsoleMetricReporter implements LifecycleListener {
   private ConsoleReporter consoleReporter;
+  private boolean enabled;
 
   @Inject
-  public ConsoleMetricReporter(MetricRegistry registry) {
+  public ConsoleMetricReporter(MetricRegistry registry,
+      PluginConfigFactory configFactory,
+      @PluginName String pluginName) {
+    Config config = configFactory.getGlobalPluginConfig(pluginName);
+    enabled = config.getBoolean("console-metrics", "enabled", false);
+    if (!enabled) {
+      return;
+    }
     this.consoleReporter =
         ConsoleReporter.forRegistry(registry).convertRatesTo(TimeUnit.SECONDS)
             .convertDurationsTo(TimeUnit.MILLISECONDS).build();
@@ -45,11 +66,15 @@
 
   @Override
   public void start() {
-    consoleReporter.start(1, TimeUnit.MINUTES);
+    if (enabled) {
+      consoleReporter.start(1, TimeUnit.MINUTES);
+    }
   }
 
   @Override
   public void stop() {
-    consoleReporter.stop();
+    if (enabled) {
+      consoleReporter.stop();
+    }
   }
 }
