>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