>From Hussain Towaileb <[email protected]>:

Hussain Towaileb has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18252 )


Change subject: Add metrics
......................................................................

Add metrics

Change-Id: I2a25322c5e3ca9b33d5c1bdc2594d1f6c833c801
---
M 
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
M 
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
M 
hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java
M 
hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
4 files changed, 43 insertions(+), 1 deletion(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/52/18252/1

diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
index b2795d4..f8f3e5d 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
@@ -130,4 +130,9 @@
      * @return the maximum number of jobs to queue before rejecting new jobs
      */
     int getJobQueueCapacity();
+
+    /**
+     * @return total jobs count
+     */
+    int getTotalJobsCount();
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
index 4882f4a..79cff64 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
@@ -30,6 +30,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;

 import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -66,11 +67,13 @@
     private final Map<JobId, JobRun> runMapArchive;
     private final Map<JobId, List<Exception>> runMapHistory;
     private final IJobCapacityController jobCapacityController;
+    private final AtomicInteger totalJobsCount;
     private IJobQueue jobQueue;

     public JobManager(CCConfig ccConfig, ClusterControllerService ccs, 
IJobCapacityController jobCapacityController) {
         this.ccs = ccs;
         this.jobCapacityController = jobCapacityController;
+        this.totalJobsCount = new AtomicInteger();
         try {
             Constructor<?> jobQueueConstructor = 
this.getClass().getClassLoader().loadClass(ccConfig.getJobQueueClass())
                     .getConstructor(IJobManager.class, 
IJobCapacityController.class);
@@ -107,6 +110,7 @@
     @Override
     public void add(JobRun jobRun) throws HyracksException {
         checkJob(jobRun);
+        incrementJobsTotalCount();
         JobSpecification job = jobRun.getJobSpecification();
         IJobCapacityController.JobSubmissionStatus status = 
jobCapacityController.allocate(job);
         CCServiceContext serviceCtx = ccs.getContext();
@@ -301,6 +305,11 @@
         return ccs.getCCConfig().getJobQueueCapacity();
     }

+    @Override
+    public int getTotalJobsCount() {
+        return totalJobsCount.get();
+    }
+
     private void pickJobsToRun() throws HyracksException {
         List<JobRun> selectedRuns = jobQueue.pull();
         for (JobRun run : selectedRuns) {
@@ -356,4 +365,8 @@
         final JobSpecification job = jobRun.getJobSpecification();
         jobCapacityController.release(job);
     }
+
+    private void incrementJobsTotalCount() {
+        totalJobsCount.incrementAndGet();
+    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java
index 3ab2ab9..351365c 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java
@@ -52,13 +52,14 @@
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) throws 
Exception {
         if (overloaded) {
+            incrementRejectedRequestsCount();
             ReferenceCountUtil.release(msg);
             return;
         }
         if (overloaded()) {
             ReferenceCountUtil.release(msg);
+            incrementRejectedRequestsCount();
             reject(ctx);
-            return;
         } else {
             super.channelRead(ctx, msg);
         }
@@ -85,6 +86,7 @@
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         if (overloaded()) {
+            incrementRejectedRequestsCount();
             reject(ctx);
             return;
         }
@@ -105,4 +107,8 @@
         }
         return overloaded;
     }
+
+    private void incrementRejectedRequestsCount() {
+        server.incrementRejectedRequestsCount();
+    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
index 271de53..9fec606 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
@@ -87,6 +87,7 @@
     private final EventLoopGroup workerGroup;
     private final Set<InetSocketAddress> addresses;
     private final ThreadPoolExecutor executor;
+    private final AtomicInteger rejectedRequestsCount = new AtomicInteger();
     // Mutable members
     private volatile int state = STOPPED;
     private volatile Thread recoveryThread;
@@ -443,4 +444,12 @@
             channels.clear();
         }
     }
+
+    public void incrementRejectedRequestsCount() {
+        rejectedRequestsCount.incrementAndGet();
+    }
+
+    public int getRejectedRequestsCount() {
+        return rejectedRequestsCount.get();
+    }
 }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18252
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I2a25322c5e3ca9b33d5c1bdc2594d1f6c833c801
Gerrit-Change-Number: 18252
Gerrit-PatchSet: 1
Gerrit-Owner: Hussain Towaileb <[email protected]>
Gerrit-MessageType: newchange

Reply via email to