diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/PullReplicationApiRequestMetrics.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/PullReplicationApiRequestMetrics.java
index 8a97901..597b66f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/PullReplicationApiRequestMetrics.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/PullReplicationApiRequestMetrics.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.replication.pull.api;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
 import com.google.inject.Inject;
 import com.googlesource.gerrit.plugins.replication.pull.FetchReplicationMetrics;
 import java.util.Optional;
@@ -51,18 +53,22 @@
     startTimeNanos =
         Optional.ofNullable(req.getHeader(HTTP_HEADER_X_START_TIME_NANOS))
             .map(Long::parseLong)
-            /* Adjust with System.nanoTime() for preventing negative execution times
+            /* Adjust with the system's nanotime for preventing negative execution times
              * due to a clock skew between the client and the server timestamp.
              */
-            .map(nanoTime -> Math.min(System.nanoTime(), nanoTime));
+            .map(nanoTime -> Math.min(currentTimeNanos(), nanoTime));
   }
 
   public Optional<Long> stop(String replicationSourceName) {
     return startTimeNanos.map(
         start -> {
-          long elapsed = System.nanoTime() - start;
+          long elapsed = currentTimeNanos() - start;
           metrics.recordEnd2End(replicationSourceName, elapsed);
           return elapsed;
         });
   }
+
+  private long currentTimeNanos() {
+    return MILLISECONDS.toNanos(System.currentTimeMillis());
+  }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchApiClient.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchApiClient.java
index 6b23a9f..6000eb9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchApiClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchApiClient.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.replication.pull.client;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
 import com.google.gerrit.entities.Project;
 import com.googlesource.gerrit.plugins.replication.pull.Source;
 import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionData;
@@ -34,7 +36,7 @@
 
   default HttpResult callFetch(Project.NameKey project, String refName, URIish targetUri)
       throws ClientProtocolException, IOException {
-    return callFetch(project, refName, targetUri, System.nanoTime());
+    return callFetch(project, refName, targetUri, MILLISECONDS.toNanos(System.currentTimeMillis()));
   }
 
   HttpResult initProject(Project.NameKey project, URIish uri) throws IOException;
