Merge branch 'stable-2.14' into stable-2.15

* stable-2.14:
  Revert "WorkQueue: Add metrics"

Change-Id: I29c71499808a73582f60a697c22863ab04390751
diff --git a/Documentation/metrics.txt b/Documentation/metrics.txt
index 05cca18..901f15a 100644
--- a/Documentation/metrics.txt
+++ b/Documentation/metrics.txt
@@ -53,17 +53,6 @@
 * `query/query_latency`: Successful query latency, accumulated over the life
 of the process.
 
-=== Queue
-
-The metrics below are per queue.
-
-* `queue/<queueName>/pool_size`: Current number of threads in the pool
-* `queue/<queueName>/max_pool_size`: Maximum allowed number of threads in the pool
-* `queue/<queueName>/active_threads`: Number of threads that are actively executing tasks
-* `queue/<queueName>/scheduled_tasks`: Number of scheduled tasks in the queue
-* `queue/<queueName>/total_scheduled_tasks_count`: Total number of tasks that have been scheduled
-* `queue/<queueName>/total_completed_tasks_count`: Total number of tasks that have completed execution
-
 === SSH sessions
 
 * `sshd/sessions/connected`: Number of currently connected SSH sessions.
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java
index a9461a4..2948cde 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java
@@ -14,14 +14,8 @@
 
 package com.google.gerrit.server.git;
 
-import static com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker.sanitizeMetricName;
-
-import com.google.common.base.CaseFormat;
-import com.google.common.base.Supplier;
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.lifecycle.LifecycleModule;
-import com.google.gerrit.metrics.Description;
-import com.google.gerrit.metrics.MetricMaker;
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.util.IdGenerator;
@@ -89,19 +83,17 @@
         }
       };
 
-  private final MetricMaker metrics;
   private final ScheduledExecutorService defaultQueue;
   private final IdGenerator idGenerator;
   private final CopyOnWriteArrayList<Executor> queues;
 
   @Inject
-  WorkQueue(MetricMaker metrics, IdGenerator idGenerator, @GerritServerConfig Config cfg) {
-    this(metrics, idGenerator, cfg.getInt("execution", "defaultThreadPoolSize", 1));
+  WorkQueue(IdGenerator idGenerator, @GerritServerConfig Config cfg) {
+    this(idGenerator, cfg.getInt("execution", "defaultThreadPoolSize", 1));
   }
 
   /** Constructor to allow binding the WorkQueue more explicitly in a vhost setup. */
-  public WorkQueue(MetricMaker metrics, IdGenerator idGenerator, int defaultThreadPoolSize) {
-    this.metrics = metrics;
+  public WorkQueue(IdGenerator idGenerator, int defaultThreadPoolSize) {
     this.idGenerator = idGenerator;
     this.queues = new CopyOnWriteArrayList<>();
     this.defaultQueue = createQueue(defaultThreadPoolSize, "WorkQueue");
@@ -222,94 +214,6 @@
               corePoolSize + 4 // concurrency level
               );
       queueName = prefix;
-      try {
-        buildMetrics(queueName);
-      } catch (IllegalArgumentException e) {
-        if (e.getMessage().contains("already")) {
-          log.warn("Not creating metrics for queue '{}': already exists", queueName);
-        } else {
-          throw e;
-        }
-      }
-    }
-
-    private void buildMetrics(String queueName) {
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "max_pool_size"),
-          Long.class,
-          new Description("Maximum allowed number of threads in the pool")
-              .setGauge()
-              .setUnit("threads"),
-          new Supplier<Long>() {
-            @Override
-            public Long get() {
-              return (long) getMaximumPoolSize();
-            }
-          });
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "pool_size"),
-          Long.class,
-          new Description("Current number of threads in the pool").setGauge().setUnit("threads"),
-          new Supplier<Long>() {
-            @Override
-            public Long get() {
-              return (long) getPoolSize();
-            }
-          });
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "active_threads"),
-          Long.class,
-          new Description("Number number of threads that are actively executing tasks")
-              .setGauge()
-              .setUnit("threads"),
-          new Supplier<Long>() {
-            @Override
-            public Long get() {
-              return (long) getActiveCount();
-            }
-          });
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "scheduled_tasks"),
-          Integer.class,
-          new Description("Number of scheduled tasks in the queue").setGauge().setUnit("tasks"),
-          new Supplier<Integer>() {
-            @Override
-            public Integer get() {
-              return getQueue().size();
-            }
-          });
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "total_scheduled_tasks_count"),
-          Long.class,
-          new Description("Total number of tasks that have been scheduled for execution")
-              .setCumulative()
-              .setUnit("tasks"),
-          new Supplier<Long>() {
-            @Override
-            public Long get() {
-              return (long) getTaskCount();
-            }
-          });
-      metrics.newCallbackMetric(
-          getMetricName(queueName, "total_completed_tasks_count"),
-          Long.class,
-          new Description("Total number of tasks that have completed execution")
-              .setCumulative()
-              .setUnit("tasks"),
-          new Supplier<Long>() {
-            @Override
-            public Long get() {
-              return (long) getCompletedTaskCount();
-            }
-          });
-    }
-
-    private String getMetricName(String queueName, String metricName) {
-      String name =
-          CaseFormat.UPPER_CAMEL.to(
-              CaseFormat.LOWER_UNDERSCORE,
-              queueName.replaceFirst("SSH", "Ssh").replaceAll("-", ""));
-      return sanitizeMetricName(String.format("queue/%s/%s", name, metricName));
     }
 
     @Override