Merge changes I475d55b3,I2bc7b3f7,Ibc04347f,I17368493,I642953e4, ... * changes: Use Java record for Forwarder.Result Add metric displaying the number of retries required to forward event Add metrics to measure time of processing forwarded event Add metric reporting the success/failure of event processing Add metrics measuring time between event creation and response Use millisecond accuracy for IndexEvent.eventCreatedOn Add metric about failure/success count of forwarding request Use enum for Command.TYPE
diff --git a/BUILD b/BUILD index 4beff6e..10896bf 100644 --- a/BUILD +++ b/BUILD
@@ -15,6 +15,7 @@ "Gerrit-Module: com.ericsson.gerrit.plugins.highavailability.Module", "Gerrit-HttpModule: com.ericsson.gerrit.plugins.highavailability.HttpModule", "Gerrit-InitStep: com.ericsson.gerrit.plugins.highavailability.Setup", + "Gerrit-ReloadMode: restart", "Implementation-Title: high-availability plugin", "Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/high-availability", ],
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java index d48df46..0d25d92 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java
@@ -35,7 +35,7 @@ WorkQueue workQueue, int threadPoolSize, String threadNamePrefix, long scheduleDelayMsec) { executor = new ScheduledWithDelayExecutorService( - workQueue.createQueue(threadPoolSize, threadNamePrefix), scheduleDelayMsec); + workQueue.createQueue(threadPoolSize, threadNamePrefix, true), scheduleDelayMsec); } @Override
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java index 1db3721..c1b0ef3 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java
@@ -20,13 +20,13 @@ import com.google.gerrit.extensions.events.GroupIndexedListener; import com.google.gerrit.extensions.events.ProjectIndexedListener; import com.google.gerrit.extensions.registration.DynamicSet; -import com.google.inject.AbstractModule; +import com.google.gerrit.lifecycle.LifecycleModule; import com.google.inject.Scopes; import com.google.inject.TypeLiteral; import com.google.inject.assistedinject.FactoryModuleBuilder; import dev.failsafe.FailsafeExecutor; -public class IndexModule extends AbstractModule { +public class IndexModule extends LifecycleModule { @Override protected void configure() { @@ -38,6 +38,7 @@ .annotatedWith(ForwardedIndexExecutor.class) .to(ForwardedIndexExecutorProvider.class) .in(Scopes.SINGLETON); + listener().to(ForwardedIndexExecutorProvider.class); bind(new TypeLiteral<FailsafeExecutor<Boolean>>() {}) .annotatedWith(ForwardedBatchIndexExecutor.class) @@ -47,7 +48,7 @@ .annotatedWith(ForwardedBatchIndexExecutor.class) .to(ForwardedBatchIndexExecutorProvider.class) .in(Scopes.SINGLETON); - + listener().to(ForwardedBatchIndexExecutorProvider.class); DynamicSet.bind(binder(), ChangeIndexedListener.class) .to(IndexEventHandler.class) .in(Scopes.SINGLETON);
diff --git a/src/test/docker/gerrit/Dockerfile b/src/test/docker/gerrit/Dockerfile index 02c3af1..d18e060 100644 --- a/src/test/docker/gerrit/Dockerfile +++ b/src/test/docker/gerrit/Dockerfile
@@ -11,7 +11,7 @@ nfs-utils \ && yum -y clean all -ENV GERRIT_BRANCH master +ENV GERRIT_BRANCH stable-3.13 # Add gerrit user RUN adduser -p -m --uid 1000 gerrit --home-dir /home/gerrit @@ -42,13 +42,17 @@ /var/gerrit/lib/global-refdb.jar ADD --chown=gerrit:gerrit \ - "https://gerrit-ci.gerritforge.com/job/plugin-zookeeper-refdb-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/zookeeper-refdb/zookeeper-refdb.jar" \ + "https://gerrit-ci.gerritforge.com/job/plugin-zookeeper-refdb-gh-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/zookeeper-refdb/zookeeper-refdb.jar" \ /var/gerrit/plugins/zookeeper-refdb.jar ADD --chown=gerrit:gerrit \ "https://gerrit-ci.gerritforge.com/view/Plugins-master/job/module-index-elasticsearch-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/index-elasticsearch/index-elasticsearch.jar" \ /var/gerrit_plugins/index-elasticsearch.jar +ADD --chown=gerrit:gerrit \ + "https://gerrit-ci.gerritforge.com/job/plugin-healthcheck-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/healthcheck/healthcheck.jar" \ + /var/gerrit/plugins/healthcheck.jar + ADD --chown=gerrit:gerrit ./wait-for-it.sh /bin # Change user
diff --git a/src/test/docker/haproxy/haproxy.cfg b/src/test/docker/haproxy/haproxy.cfg index 07a6746..a068802 100644 --- a/src/test/docker/haproxy/haproxy.cfg +++ b/src/test/docker/haproxy/haproxy.cfg
@@ -44,15 +44,15 @@ balance source timeout connect 10s timeout server 5m - server gerrit_ssh_01 gerrit-01:29418 check port 8080 inter 10s fall 3 rise 2 - server gerrit-ssh_02 gerrit-02:29418 check port 8080 inter 10s fall 3 rise 2 + server gerrit_ssh_01 gerrit-01:29418 check port 8080 inter 1s fall 3 rise 2 + server gerrit-ssh_02 gerrit-02:29418 check port 8080 inter 1s fall 3 rise 2 backend gerrit_http_nodes mode http balance source option forwardfor - default-server inter 10s fall 3 rise 2 - option httpchk GET /config/server/version HTTP/1.0 + default-server inter 1s fall 3 rise 2 + option httpchk GET /config/server/healthcheck~status HTTP/1.0 http-check expect status 200 server gerrit_01 gerrit-01:8080 check server gerrit_02 gerrit-02:8080 check @@ -61,8 +61,8 @@ mode http balance source option forwardfor - default-server inter 10s fall 3 rise 2 - option httpchk GET /config/server/version HTTP/1.0 + default-server inter 1s fall 3 rise 2 + option httpchk GET /config/server/healthcheck~status HTTP/1.0 http-check expect status 200 server gerrit_01 gerrit-01:8080 check server gerrit_02 gerrit-02:8080 check