You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2011/05/06 12:07:26 UTC
svn commit: r1100155 - in
/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp:
ClientHandler.java NhttpConstants.java ServerHandler.java
util/LatencyView.java
Author: hiranya
Date: Fri May 6 10:07:25 2011
New Revision: 1100155
URL: http://svn.apache.org/viewvc?rev=1100155&view=rev
Log:
Adding S2S latency JMX MBeans
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=1100155&r1=1100154&r2=1100155&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java Fri May 6 10:07:25 2011
@@ -635,6 +635,9 @@ public class ClientHandler implements NH
*/
public void responseReceived(final NHttpClientConnection conn) {
+ setServerContextAttribute(NhttpConstants.RES_HEADER_ARRIVAL_TIME,
+ System.currentTimeMillis(), conn);
+
HttpContext context = conn.getContext();
HttpResponse response = conn.getHttpResponse();
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java?rev=1100155&r1=1100154&r2=1100155&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java Fri May 6 10:07:25 2011
@@ -116,6 +116,7 @@ public class NhttpConstants {
public static final String REQ_ARRIVAL_TIME = "REQ_ARRIVAL_TIME";
public static final String REQ_DEPARTURE_TIME = "REQ_DEPARTURE_TIME";
public static final String RES_ARRIVAL_TIME = "RES_ARRIVAL_TIME";
+ public static final String RES_HEADER_ARRIVAL_TIME = "RES_HEADER_ARRIVAL_TIME";
public static final String RES_DEPARTURE_TIME = "RES_DEPARTURE_TIME";
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java?rev=1100155&r1=1100154&r2=1100155&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java Fri May 6 10:07:25 2011
@@ -114,6 +114,7 @@ public class ServerHandler implements NH
private boolean restDispatching = true;
private LatencyView latencyView = null;
+ private LatencyView s2sLatencyView = null;
private ThreadingView threadingView = null;
public static final String REQUEST_SINK_BUFFER = "synapse.request-sink-buffer";
@@ -135,7 +136,8 @@ public class ServerHandler implements NH
this.connStrategy = new DefaultConnectionReuseStrategy();
this.allocator = new HeapByteBufferAllocator();
this.activeConnections = new ArrayList<NHttpServerConnection>();
- this.latencyView = new LatencyView(isHttps);
+ this.latencyView = new LatencyView("NHTTPLatencyView", isHttps);
+ this.s2sLatencyView = new LatencyView("NHTTPS2SLatencyView", isHttps);
this.threadingView = new ThreadingView("HttpServerWorker", true, 50);
this.restDispatching = listenerContext.isRestDispatching();
@@ -371,7 +373,20 @@ public class ServerHandler implements NH
final HttpResponse response) throws IOException, HttpException {
try {
conn.suspendInput();
- httpProcessor.process(response, conn.getContext());
+ HttpContext context = conn.getContext();
+ httpProcessor.process(response, context);
+
+ if (context.getAttribute(NhttpConstants.REQ_ARRIVAL_TIME) != null &&
+ context.getAttribute(NhttpConstants.REQ_DEPARTURE_TIME) != null &&
+ context.getAttribute(NhttpConstants.RES_HEADER_ARRIVAL_TIME) != null) {
+
+ s2sLatencyView.notifyTimes(
+ (Long) context.getAttribute(NhttpConstants.REQ_ARRIVAL_TIME),
+ (Long) context.getAttribute(NhttpConstants.REQ_DEPARTURE_TIME),
+ (Long) context.getAttribute(NhttpConstants.RES_HEADER_ARRIVAL_TIME),
+ System.currentTimeMillis());
+ }
+
conn.submitResponse(response);
} catch (HttpException e) {
shutdownConnection(conn);
@@ -600,6 +615,7 @@ public class ServerHandler implements NH
public void stop() {
latencyView.destroy();
+ s2sLatencyView.destroy();
threadingView.destroy();
try {
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java?rev=1100155&r1=1100154&r2=1100155&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java Fri May 6 10:07:25 2011
@@ -54,8 +54,6 @@ import java.util.Calendar;
*/
public class LatencyView implements LatencyViewMBean {
- private static final String NHTTP_LATENCY_VIEW = "NhttpTransportLatency";
-
private static final int SMALL_DATA_COLLECTION_PERIOD = 5;
private static final int LARGE_DATA_COLLECTION_PERIOD = 5 * 60;
private static final int SAMPLES_PER_MINUTE = 60/ SMALL_DATA_COLLECTION_PERIOD;
@@ -89,14 +87,16 @@ public class LatencyView implements Late
private int count = 0;
private Date resetTime = Calendar.getInstance().getTime();
+ private String latencyMode;
private String name;
- public LatencyView(boolean isHttps) {
+ public LatencyView(final String latencyMode, boolean isHttps) {
+ this.latencyMode = latencyMode;
name = "nio-http" + (isHttps ? "s" : "");
scheduler = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
public Thread newThread(Runnable r) {
- return new Thread(r, name + "-latency-view");
+ return new Thread(r, latencyMode + "-" + name + "-latency-view");
}
});
@@ -106,7 +106,7 @@ public class LatencyView implements Late
LARGE_DATA_COLLECTION_PERIOD, TimeUnit.SECONDS);
boolean registered = false;
try {
- registered = MBeanRegistrar.getInstance().registerMBean(this, NHTTP_LATENCY_VIEW, name);
+ registered = MBeanRegistrar.getInstance().registerMBean(this, this.latencyMode, name);
} finally {
if (!registered) {
scheduler.shutdownNow();
@@ -115,7 +115,7 @@ public class LatencyView implements Late
}
public void destroy() {
- MBeanRegistrar.getInstance().unRegisterMBean(NHTTP_LATENCY_VIEW, name);
+ MBeanRegistrar.getInstance().unRegisterMBean(latencyMode, name);
if (!scheduler.isShutdown()) {
scheduler.shutdownNow();
}