Make thread pool configurable

Bug: Issue 16248
Change-Id: I8677540df22dfa99a12720a95a7aa22854181005
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java
index a588a73..8176813 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java
@@ -43,4 +43,8 @@
   public Long getGracePeriodMs() {
     return config.getTimeUnit("git-repo-metrics", null, "gracePeriod", 0L, TimeUnit.MILLISECONDS);
   }
+
+  public int getPoolSize() {
+    return config.getInt("git-repo-metrics", null, "poolSize", 1);
+  }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java
index 6e74c88..41ecfbb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java
@@ -26,9 +26,12 @@
   private ExecutorService executor;
 
   @Inject
-  UpdateGitMetricsExecutorProvider(WorkQueue workQueue, @PluginName String pluginName) {
-    // TODO Make pool size configurable
-    executor = workQueue.createQueue(1, "[" + pluginName + " plugin]");
+  UpdateGitMetricsExecutorProvider(
+      WorkQueue workQueue,
+      @PluginName String pluginName,
+      GitRepoMetricsConfig gitRepoMetricsConfig) {
+    executor =
+        workQueue.createQueue(gitRepoMetricsConfig.getPoolSize(), "[" + pluginName + " plugin]");
   }
 
   @Override
diff --git a/src/resources/Documentation/config.md b/src/resources/Documentation/config.md
index 963f413..acda594 100644
--- a/src/resources/Documentation/config.md
+++ b/src/resources/Documentation/config.md
@@ -38,4 +38,6 @@
 ```
 
 _git-repo-metrics.gracePeriod_: Grace period between samples collection. Used to avoid aggressive
-metrics collection. By default, 0.
\ No newline at end of file
+metrics collection. By default, 0.
+
+_git-repo-metrics.poolSize_: Number of threads available to collect metrics. By default, 1.
\ No newline at end of file