add completed requests field for computing average response time
This commit is contained in:
@@ -172,6 +172,7 @@ public class ResourceStat {
|
||||
long peakConcurrences = 0;
|
||||
long errors = 0;
|
||||
long blockReqs = 0;
|
||||
long compReqs = 0;
|
||||
for (long i = startSlotId; i < endSlotId;) {
|
||||
if (timeSlots.containsKey(i)) {
|
||||
TimeSlot timeSlot = timeSlots.get(i);
|
||||
@@ -184,6 +185,7 @@ public class ResourceStat {
|
||||
totalRt = totalRt + timeSlot.getTotalRt().get();
|
||||
errors = errors + timeSlot.getErrors().get();
|
||||
blockReqs = blockReqs + timeSlot.getBlockRequests().get();
|
||||
compReqs = compReqs + timeSlot.getCompReqs().get();
|
||||
}
|
||||
i = i + FlowStat.INTERVAL;
|
||||
}
|
||||
@@ -193,10 +195,13 @@ public class ResourceStat {
|
||||
tws.setTotal(totalReqs);
|
||||
tws.setErrors(errors);
|
||||
tws.setBlockRequests(blockReqs);
|
||||
tws.setCompReqs(compReqs);
|
||||
|
||||
if (compReqs > 0) {
|
||||
tws.setAvgRt(totalRt / compReqs);
|
||||
}
|
||||
|
||||
if (totalReqs > 0) {
|
||||
tws.setAvgRt(totalRt / totalReqs);
|
||||
|
||||
BigDecimal nsec = new BigDecimal(endSlotId - startSlotId).divide(new BigDecimal(1000), 5,
|
||||
BigDecimal.ROUND_HALF_UP);
|
||||
BigDecimal rps = new BigDecimal(totalReqs).divide(nsec, 5, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
@@ -38,6 +38,12 @@ public class TimeSlot {
|
||||
* Total response time
|
||||
*/
|
||||
private AtomicLong totalRt = new AtomicLong(0);
|
||||
|
||||
/**
|
||||
* Completed Request counter
|
||||
*/
|
||||
private AtomicLong compReqs = new AtomicLong();
|
||||
|
||||
|
||||
/**
|
||||
* Peak concurrent requests
|
||||
@@ -73,6 +79,7 @@ public class TimeSlot {
|
||||
*/
|
||||
public synchronized void addRequestRT(long rt, boolean isSuccess) {
|
||||
totalRt.addAndGet(rt);
|
||||
compReqs.incrementAndGet();
|
||||
if (!isSuccess) {
|
||||
errors.incrementAndGet();
|
||||
}
|
||||
@@ -150,4 +157,12 @@ public class TimeSlot {
|
||||
this.blockRequests = blockRequests;
|
||||
}
|
||||
|
||||
public AtomicLong getCompReqs() {
|
||||
return compReqs;
|
||||
}
|
||||
|
||||
public void setCompReqs(AtomicLong compReqs) {
|
||||
this.compReqs = compReqs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,6 +38,11 @@ public class TimeWindowStat {
|
||||
* Total requests
|
||||
*/
|
||||
private Long total;
|
||||
|
||||
/**
|
||||
* Completed requests
|
||||
*/
|
||||
private Long compReqs;
|
||||
|
||||
/**
|
||||
* Total error requests
|
||||
@@ -139,4 +144,12 @@ public class TimeWindowStat {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public Long getCompReqs() {
|
||||
return compReqs;
|
||||
}
|
||||
|
||||
public void setCompReqs(Long compReqs) {
|
||||
this.compReqs = compReqs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user