summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <dpursehouse@collab.net>2017-02-03 19:05:29 +0900
committerDavid Pursehouse <dpursehouse@collab.net>2017-02-03 19:37:02 +0900
commit48d05ea980612adb61a8272ad5b6c8cdea1502e2 (patch)
tree3174c9b1732804a2444f5442f254b52ffd474389
parent5e48cddbb306bcf3717f80f25aab8ba54de43c97 (diff)
BaseInit: Bind DisabledMetricMaker
In some cases a plugin may have an InitStep that refers to other classes in its implementation, that in turn get a MetricMaker injected. Since the MetricMaker, among other things, is not available to the InitStep, this results in a guice injection error during the plugins init step of site initialization. Bind the DisabledMetricMaker to avoid the injection error. This has the result that the InitStep works, but no metrics can be recorded. Update the metrics documentation to explicitly mention that metrics are not available during plugin init steps. Bug: Issue 5438 Change-Id: Iac9f462eb93a2ae668d5c934e61eda9f23bd3c4d
-rw-r--r--Documentation/dev-plugins.txt3
-rw-r--r--gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java4
2 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/dev-plugins.txt b/Documentation/dev-plugins.txt
index b6b7d677ab..d085731d00 100644
--- a/Documentation/dev-plugins.txt
+++ b/Documentation/dev-plugins.txt
@@ -2217,6 +2217,9 @@ Metric recording time spent on an operation.
+
Metric recording statistical distribution (rate) of values.
+Note that metrics cannot be recorded from plugin init steps that
+are run during site initialization.
+
Plugin metrics are recorded under `plugins/${plugin-name}/${metric-name}`.
See the replication metrics in the
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
index 8ccdebce4a..f625f7548e 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
@@ -23,6 +23,8 @@ import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.gerrit.common.Die;
import com.google.gerrit.common.IoUtil;
+import com.google.gerrit.metrics.DisabledMetricMaker;
+import com.google.gerrit.metrics.MetricMaker;
import com.google.gerrit.pgm.init.api.ConsoleUI;
import com.google.gerrit.pgm.init.api.InitFlags;
import com.google.gerrit.pgm.init.api.InstallAllPlugins;
@@ -274,6 +276,8 @@ public class BaseInit extends SiteProgram {
LibraryDownload.class).toInstance(getSkippedDownloads());
bind(Boolean.class).annotatedWith(
LibraryDownload.class).toInstance(skipAllDownloads());
+
+ bind(MetricMaker.class).to(DisabledMetricMaker.class);
}
});