diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
index 0614959..255c51b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
@@ -14,13 +14,13 @@
 
 package com.googlesource.gerrit.plugins.replication;
 
-import com.google.common.base.Stopwatch;
 import com.google.common.base.Throwables;
 import com.google.common.collect.LinkedListMultimap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimap;
 import com.google.common.collect.Sets;
+import com.google.gerrit.common.TimeUtil;
 import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.reviewdb.client.RefNames;
@@ -70,7 +70,6 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
 
 /**
  * A push to remote operation started by {@link GitReferenceUpdatedListener}.
@@ -112,6 +111,7 @@
   private final int maxLockRetries;
   private int lockRetryCount;
   private final int id;
+  private final long createdAt;
 
   @Inject
   PushOne(final GitRepositoryManager grm,
@@ -140,6 +140,7 @@
     lockRetryCount = 0;
     maxLockRetries = pool.getLockErrorMaxRetries();
     id = ig.next();
+    createdAt = TimeUtil.nowMs();
   }
 
   @Override
@@ -279,13 +280,15 @@
       return;
     }
 
-    Stopwatch stopwatch = Stopwatch.createStarted();
+    long startedAt = TimeUtil.nowMs();
     repLog.info("Replication to " + uri + " started...");
     try {
       git = gitManager.openRepository(projectName);
       runImpl();
+      long finishedAt = TimeUtil.nowMs();
       repLog.info("Replication to " + uri + " completed in "
-          + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
+          + (finishedAt - startedAt) + "ms, "
+          + (startedAt - createdAt) + "ms delay, " + retryCount + " retries");
     } catch (RepositoryNotFoundException e) {
       stateLog.error("Cannot replicate " + projectName
           + "; Local repository error: "
