mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-22 00:26:05 +08:00
add response time cal
This commit is contained in:
parent
9ea9ba75fe
commit
a4b3ccb333
|
@ -52,11 +52,11 @@ public class RollingTrafficStatus {
|
||||||
Map<String, Integer[]> reqStatusResult = new HashMap<>();
|
Map<String, Integer[]> reqStatusResult = new HashMap<>();
|
||||||
buckets.getAccumulatedStubStatus(stubStatusResult, reqStatusResult);
|
buckets.getAccumulatedStubStatus(stubStatusResult, reqStatusResult);
|
||||||
extractStubStatus(stubStatusResult, trafficStatus);
|
extractStubStatus(stubStatusResult, trafficStatus);
|
||||||
extractReqStatus(reqStatusResult, reqStatusResult.size(), trafficStatus);
|
extractReqStatus(reqStatusResult, trafficStatus);
|
||||||
return 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()) {
|
for (String key : upstreamMap.keySet()) {
|
||||||
Integer[] data = upstreamMap.get(key);
|
Integer[] data = upstreamMap.get(key);
|
||||||
String[] hostUpstream = key.split("/");
|
String[] hostUpstream = key.split("/");
|
||||||
|
@ -67,11 +67,16 @@ public class RollingTrafficStatus {
|
||||||
if (hostUpstream.length > 1)
|
if (hostUpstream.length > 1)
|
||||||
upstreamName = hostUpstream[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)
|
trafficStatus.addReqStatus(new ReqStatus().setHostName(hostName)
|
||||||
.setTotalRequests(data[ReqStatusOffset.ReqTotal.ordinal()])
|
.setResponseTime(responseTime)
|
||||||
|
.setTotalRequests(requests)
|
||||||
.setUpName(upstreamName)
|
.setUpName(upstreamName)
|
||||||
.setUpRequests(data[ReqStatusOffset.UpstreamReq.ordinal()])
|
.setUpRequests(upRequests)
|
||||||
.setUpResponseTime(data[ReqStatusOffset.UpstreamRt.ordinal()])
|
.setUpResponseTime(upResponseTime)
|
||||||
.setUpTries(data[ReqStatusOffset.UpstreamTries.ordinal()])
|
.setUpTries(data[ReqStatusOffset.UpstreamTries.ordinal()])
|
||||||
.setSuccessCount(data[ReqStatusOffset.SuccessCount.ordinal()])
|
.setSuccessCount(data[ReqStatusOffset.SuccessCount.ordinal()])
|
||||||
.setRedirectionCount(data[ReqStatusOffset.RedirectionCount.ordinal()])
|
.setRedirectionCount(data[ReqStatusOffset.RedirectionCount.ordinal()])
|
||||||
|
@ -81,11 +86,13 @@ public class RollingTrafficStatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void extractStubStatus(Integer[] data, TrafficStatus trafficStatus) {
|
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()])
|
trafficStatus.setActiveConnections(data[StubStatusOffset.ActiveConn.ordinal()])
|
||||||
.setAccepts(data[StubStatusOffset.Accepts.ordinal()])
|
.setAccepts(data[StubStatusOffset.Accepts.ordinal()])
|
||||||
.setHandled(data[StubStatusOffset.Handled.ordinal()])
|
.setHandled(data[StubStatusOffset.Handled.ordinal()])
|
||||||
.setRequests(data[StubStatusOffset.Requests.ordinal()])
|
.setRequests(requests)
|
||||||
.setRequestTime(data[StubStatusOffset.RequestTime.ordinal()])
|
.setResponseTime(responseTime)
|
||||||
.setReading(data[StubStatusOffset.Reading.ordinal()])
|
.setReading(data[StubStatusOffset.Reading.ordinal()])
|
||||||
.setWriting(data[StubStatusOffset.Writing.ordinal()])
|
.setWriting(data[StubStatusOffset.Writing.ordinal()])
|
||||||
.setWaiting(data[StubStatusOffset.Waiting.ordinal()]);
|
.setWaiting(data[StubStatusOffset.Waiting.ordinal()]);
|
||||||
|
@ -205,7 +212,6 @@ public class RollingTrafficStatus {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class CircularArray implements Iterable<StatusPair> {
|
private class CircularArray implements Iterable<StatusPair> {
|
||||||
private final LinkedList<StatusPair> buckets;
|
private final LinkedList<StatusPair> buckets;
|
||||||
private final int length;
|
private final int length;
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<element name="accepts" value-type="int" />
|
<element name="accepts" value-type="int" />
|
||||||
<element name="handled" value-type="int" />
|
<element name="handled" value-type="int" />
|
||||||
<element name="requests" 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="reading" value-type="int" />
|
||||||
<element name="writing" value-type="int" />
|
<element name="writing" value-type="int" />
|
||||||
<element name="waiting" value-type="int" />
|
<element name="waiting" value-type="int" />
|
||||||
|
@ -66,8 +66,9 @@
|
||||||
<element name="host-name" value-type="String" />
|
<element name="host-name" value-type="String" />
|
||||||
<element name="up-name" value-type="String" />
|
<element name="up-name" value-type="String" />
|
||||||
<element name="up-requests" value-type="int" />
|
<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="up-tries" value-type="int" />
|
||||||
|
<element name="response-time" value-type="double" />
|
||||||
<element name="total-requests" value-type="int" />
|
<element name="total-requests" value-type="int" />
|
||||||
<element name="success-count" value-type="int" />
|
<element name="success-count" value-type="int" />
|
||||||
<element name="redirection-count" value-type="int" />
|
<element name="redirection-count" value-type="int" />
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
<accepts>6</accepts>
|
<accepts>6</accepts>
|
||||||
<handled>6</handled>
|
<handled>6</handled>
|
||||||
<requests>14</requests>
|
<requests>14</requests>
|
||||||
<request-time>2</request-time>
|
<response-time>2.88</response-time>
|
||||||
<reading>0</reading>
|
<reading>0</reading>
|
||||||
<writing>1</writing>
|
<writing>1</writing>
|
||||||
<waiting>1</waiting>
|
<waiting>1</waiting>
|
||||||
|
@ -78,8 +78,9 @@
|
||||||
<host-name>ctrip.com</host-name>
|
<host-name>ctrip.com</host-name>
|
||||||
<up-name>cluster</up-name>
|
<up-name>cluster</up-name>
|
||||||
<up-requests>2</up-requests>
|
<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>
|
<up-tries>6</up-tries>
|
||||||
|
<response-time>0.12</response-time>
|
||||||
<total-requests>14</total-requests>
|
<total-requests>14</total-requests>
|
||||||
<success-count>1</success-count>
|
<success-count>1</success-count>
|
||||||
<redirection-count>1</redirection-count>
|
<redirection-count>1</redirection-count>
|
||||||
|
|
Loading…
Reference in a new issue