add response time cal

This commit is contained in:
Mengyi Zhou 2015-05-12 13:33:20 +08:00
parent 9ea9ba75fe
commit a4b3ccb333
3 changed files with 20 additions and 12 deletions

View file

@ -52,11 +52,11 @@ public class RollingTrafficStatus {
Map<String, Integer[]> reqStatusResult = new HashMap<>();
buckets.getAccumulatedStubStatus(stubStatusResult, reqStatusResult);
extractStubStatus(stubStatusResult, trafficStatus);
extractReqStatus(reqStatusResult, reqStatusResult.size(), trafficStatus);
extractReqStatus(reqStatusResult, trafficStatus);
return trafficStatus;
}
private static void extractReqStatus(Map<String, Integer[]> upstreamMap, int count, TrafficStatus trafficStatus) {
private static void extractReqStatus(Map<String, Integer[]> upstreamMap, TrafficStatus trafficStatus) {
for (String key : upstreamMap.keySet()) {
Integer[] data = upstreamMap.get(key);
String[] hostUpstream = key.split("/");
@ -67,11 +67,16 @@ public class RollingTrafficStatus {
if (hostUpstream.length > 1)
upstreamName = hostUpstream[1];
}
Integer upRequests = data[ReqStatusOffset.UpstreamReq.ordinal()];
double upResponseTime = (upRequests == null || upRequests == 0) ? 0 : (double)data[ReqStatusOffset.UpstreamRt.ordinal()] / upRequests;
Integer requests = data[ReqStatusOffset.ReqTotal.ordinal()];
double responseTime = (requests == null || requests == 0) ? 0 : (double)data[ReqStatusOffset.RtTotal.ordinal()] / requests;
trafficStatus.addReqStatus(new ReqStatus().setHostName(hostName)
.setTotalRequests(data[ReqStatusOffset.ReqTotal.ordinal()])
.setResponseTime(responseTime)
.setTotalRequests(requests)
.setUpName(upstreamName)
.setUpRequests(data[ReqStatusOffset.UpstreamReq.ordinal()])
.setUpResponseTime(data[ReqStatusOffset.UpstreamRt.ordinal()])
.setUpRequests(upRequests)
.setUpResponseTime(upResponseTime)
.setUpTries(data[ReqStatusOffset.UpstreamTries.ordinal()])
.setSuccessCount(data[ReqStatusOffset.SuccessCount.ordinal()])
.setRedirectionCount(data[ReqStatusOffset.RedirectionCount.ordinal()])
@ -81,11 +86,13 @@ public class RollingTrafficStatus {
}
private static void extractStubStatus(Integer[] data, TrafficStatus trafficStatus) {
Integer requests = data[StubStatusOffset.Requests.ordinal()];
double responseTime = (requests == null || requests == 0) ? 0.0 : (double)data[StubStatusOffset.RequestTime.ordinal()] / requests;
trafficStatus.setActiveConnections(data[StubStatusOffset.ActiveConn.ordinal()])
.setAccepts(data[StubStatusOffset.Accepts.ordinal()])
.setHandled(data[StubStatusOffset.Handled.ordinal()])
.setRequests(data[StubStatusOffset.Requests.ordinal()])
.setRequestTime(data[StubStatusOffset.RequestTime.ordinal()])
.setRequests(requests)
.setResponseTime(responseTime)
.setReading(data[StubStatusOffset.Reading.ordinal()])
.setWriting(data[StubStatusOffset.Writing.ordinal()])
.setWaiting(data[StubStatusOffset.Waiting.ordinal()]);
@ -205,7 +212,6 @@ public class RollingTrafficStatus {
return result;
}
private class CircularArray implements Iterable<StatusPair> {
private final LinkedList<StatusPair> buckets;
private final int length;

View file

@ -56,7 +56,7 @@
<element name="accepts" value-type="int" />
<element name="handled" value-type="int" />
<element name="requests" value-type="int" />
<element name="request-time" value-type="int" />
<element name="response-time" value-type="double" />
<element name="reading" value-type="int" />
<element name="writing" value-type="int" />
<element name="waiting" value-type="int" />
@ -66,8 +66,9 @@
<element name="host-name" value-type="String" />
<element name="up-name" value-type="String" />
<element name="up-requests" value-type="int" />
<element name="up-response-time" value-type="int" />
<element name="up-response-time" value-type="double" />
<element name="up-tries" value-type="int" />
<element name="response-time" value-type="double" />
<element name="total-requests" value-type="int" />
<element name="success-count" value-type="int" />
<element name="redirection-count" value-type="int" />

View file

@ -65,7 +65,7 @@
<accepts>6</accepts>
<handled>6</handled>
<requests>14</requests>
<request-time>2</request-time>
<response-time>2.88</response-time>
<reading>0</reading>
<writing>1</writing>
<waiting>1</waiting>
@ -78,8 +78,9 @@
<host-name>ctrip.com</host-name>
<up-name>cluster</up-name>
<up-requests>2</up-requests>
<up-response-time>5</up-response-time>
<up-response-time>5.685</up-response-time>
<up-tries>6</up-tries>
<response-time>0.12</response-time>
<total-requests>14</total-requests>
<success-count>1</success-count>
<redirection-count>1</redirection-count>