diff options
author | Simone Bordet | 2015-12-23 15:19:08 +0000 |
---|---|---|
committer | Simone Bordet | 2015-12-23 15:19:08 +0000 |
commit | 59680d47d3930a1a0db523d9e27a2374a45903a3 (patch) | |
tree | ca367f4a98e429d6b8d242f676810bbb76647e3d /jetty-http2 | |
parent | 7a33efdf662eb03883cea91c94cfa213b6b4d6c6 (diff) | |
download | org.eclipse.jetty.project-59680d47d3930a1a0db523d9e27a2374a45903a3.tar.gz org.eclipse.jetty.project-59680d47d3930a1a0db523d9e27a2374a45903a3.tar.xz org.eclipse.jetty.project-59680d47d3930a1a0db523d9e27a2374a45903a3.zip |
484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Exposed number of session stalls.
Diffstat (limited to 'jetty-http2')
-rw-r--r-- | jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/AbstractFlowControlStrategy.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/AbstractFlowControlStrategy.java b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/AbstractFlowControlStrategy.java index b024132fec..b2908107a7 100644 --- a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/AbstractFlowControlStrategy.java +++ b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/AbstractFlowControlStrategy.java @@ -18,10 +18,13 @@ package org.eclipse.jetty.http2; +import java.util.concurrent.atomic.AtomicLong; + import org.eclipse.jetty.http2.api.Stream; import org.eclipse.jetty.http2.frames.WindowUpdateFrame; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; +import org.eclipse.jetty.util.annotation.ManagedOperation; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -30,6 +33,7 @@ public abstract class AbstractFlowControlStrategy implements FlowControlStrategy { protected static final Logger LOG = Log.getLogger(FlowControlStrategy.class); + private final AtomicLong sessionStalls = new AtomicLong(); private int initialStreamSendWindow; private int initialStreamRecvWindow; @@ -172,6 +176,7 @@ public abstract class AbstractFlowControlStrategy implements FlowControlStrategy { if (LOG.isDebugEnabled()) LOG.debug("Session stalled {}", session); + sessionStalls.incrementAndGet(); } protected void onStreamStalled(IStream stream) @@ -191,4 +196,16 @@ public abstract class AbstractFlowControlStrategy implements FlowControlStrategy if (LOG.isDebugEnabled()) LOG.debug("Stream unstalled {}", stream); } + + @ManagedAttribute(value = "The number of times the session flow control has stalled", readonly = true) + public long getSessionStallCount() + { + return sessionStalls.get(); + } + + @ManagedOperation(value = "Resets the statistics", impact = "ACTION") + public void reset() + { + sessionStalls.set(0); + } } |