add completed requests field for computing average response time

This commit is contained in:
Francis Dong
2020-12-30 12:29:06 +08:00
parent 8be4401f47
commit 945f45fa5d
3 changed files with 35 additions and 2 deletions

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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;
}
}