diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
index a3ddb30..0019015 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
@@ -75,4 +75,10 @@
      * @return the recently completed requests
      */
     Collection<IClientRequest> getCompletedRequests();
+
+    /**
+     *
+     * @return the total number of requests since cluster start/restart
+     */
+    long getTotalNumberOfRequests();
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java
index 333c709..c9425c6 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java
@@ -24,6 +24,7 @@
 import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.asterix.common.api.IClientRequest;
 import org.apache.asterix.common.api.IRequestTracker;
@@ -37,10 +38,12 @@
     private final Map<String, IClientRequest> clientIdRequests = new ConcurrentHashMap<>();
     private final CircularFifoQueue<IClientRequest> completedRequests;
     private final ICcApplicationContext ccAppCtx;
+    private final AtomicLong numRequests;
 
     public RequestTracker(ICcApplicationContext ccAppCtx) {
         this.ccAppCtx = ccAppCtx;
         completedRequests = new CircularFifoQueue<>(ccAppCtx.getExternalProperties().getRequestsArchiveSize());
+        numRequests = new AtomicLong(0);
     }
 
     @Override
@@ -57,6 +60,7 @@
     @Override
     public void track(IClientRequest request) {
         runningRequests.put(request.getId(), request);
+        numRequests.incrementAndGet();
         if (request.getClientContextId() != null) {
             clientIdRequests.put(request.getClientContextId(), request);
         }
@@ -112,4 +116,8 @@
     private synchronized void archive(IClientRequest request) {
         completedRequests.add(request);
     }
+
+    public long getTotalNumberOfRequests() {
+        return numRequests.get();
+    }
 }
