You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2018/05/04 16:30:09 UTC

qpid-broker-j git commit: QPID-8181: [Broker-J] Add statistics for a total number of connections established on AMQP port

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 78f5671f2 -> e84273b05


QPID-8181: [Broker-J] Add statistics for a total number of connections established on AMQP port


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/e84273b0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/e84273b0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/e84273b0

Branch: refs/heads/master
Commit: e84273b056abc9a38ec635c52cacbd19d0b45a99
Parents: 78f5671
Author: Alex Rudyy <or...@apache.org>
Authored: Fri May 4 17:29:39 2018 +0100
Committer: Alex Rudyy <or...@apache.org>
Committed: Fri May 4 17:29:56 2018 +0100

----------------------------------------------------------------------
 .../apache/qpid/server/model/port/AmqpPort.java  |  6 +++++-
 .../qpid/server/model/port/AmqpPortImpl.java     |  9 +++++++++
 .../java/resources/js/qpid/management/Port.js    |  3 ---
 .../js/qpid/management/port/amqp/show.js         | 19 ++++++++++++++++++-
 .../src/main/java/resources/port/amqp/show.html  |  3 +++
 .../src/main/java/resources/showPort.html        | 14 ++++----------
 6 files changed, 39 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
index 6474622..9145889 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
@@ -163,10 +163,14 @@ public interface AmqpPort<X extends AmqpPort<X>> extends Port<X>
     @ManagedAttribute( defaultValue = "${" + PORT_MAX_OPEN_CONNECTIONS + "}" )
     int getMaxOpenConnections();
 
-    @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Connections",
+    @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Open Connections",
                       description = "Current number of connections made through this port")
     int getConnectionCount();
 
+    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.COUNT, label = "Total Connections",
+            description = "Total number of connections made through this port")
+    long getTotalConnectionCount();
+
     @DerivedAttribute(description = "Maximum time allowed for a new connection to send a protocol header."
                                     + " If the connection does not send a protocol header within this time,"
                                     + " the connection will be aborted.")

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
index f2b1c26..4e4fc64 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
@@ -33,6 +33,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLSessionContext;
@@ -92,6 +93,7 @@ public class AmqpPortImpl extends AbstractPort<AmqpPortImpl> implements AmqpPort
 
     private final AtomicInteger _connectionCount = new AtomicInteger();
     private final AtomicBoolean _connectionCountWarningGiven = new AtomicBoolean();
+    private final AtomicLong _totalConnectionCount = new AtomicLong();
 
     private final Container<?> _container;
     private final AtomicBoolean _closingOrDeleting = new AtomicBoolean();
@@ -531,6 +533,7 @@ public class AmqpPortImpl extends AbstractPort<AmqpPortImpl> implements AmqpPort
     public int incrementConnectionCount()
     {
         int openConnections = _connectionCount.incrementAndGet();
+        _totalConnectionCount.incrementAndGet();
         int maxOpenConnections = getMaxOpenConnections();
         if(maxOpenConnections > 0
            && openConnections > (maxOpenConnections * _connectionWarnCount) / 100
@@ -595,6 +598,12 @@ public class AmqpPortImpl extends AbstractPort<AmqpPortImpl> implements AmqpPort
     }
 
     @Override
+    public long getTotalConnectionCount()
+    {
+        return _totalConnectionCount.get();
+    }
+
+    @Override
     public long getProtocolHandshakeTimeout()
     {
         return _protocolHandshakeTimeout;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
index ed008f6..153c3f7 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
@@ -151,7 +151,6 @@ define(["dojo/dom",
                         "needClientAuthValue",
                         "wantClientAuthValue",
                         "trustStoresValue",
-                        "connectionCountValue",
                         "maxOpenConnectionsValue",
                         "authenticationProvider",
                         "bindingAddress",
@@ -200,8 +199,6 @@ define(["dojo/dom",
             this.transportsValue.innerHTML = printArray("transports", this.portData);
             this.bindingAddressValue.innerHTML =
                 this.portData["bindingAddress"] ? entities.encode(String(this.portData["bindingAddress"])) : "";
-            this.connectionCountValue.innerHTML =
-                this.portData["connectionCount"] ? entities.encode(String(this.portData["connectionCount"])) : "0";
             this.maxOpenConnectionsValue.innerHTML =
                 (this.portData["maxOpenConnections"] && this.portData["maxOpenConnections"] >= 0) ? entities.encode(
                     String(this.portData["maxOpenConnections"])) : "(no limit)";

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-plugins/management-http/src/main/java/resources/js/qpid/management/port/amqp/show.js
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/port/amqp/show.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/port/amqp/show.js
index cba72eb..aae7439 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/port/amqp/show.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/port/amqp/show.js
@@ -25,7 +25,8 @@ define(["dojo/query",
         "qpid/common/util",
         "qpid/common/UpdatableStore",
         "qpid/management/addVirtualHostAlias",
-        "dojo/domReady!"], function (query, template, EnhancedGrid, registry, util, UpdatableStore, addVirtualHostAlias)
+        "qpid/common/StatisticsWidget",
+        "dojo/domReady!"], function (query, template, EnhancedGrid, registry, util, UpdatableStore, addVirtualHostAlias, StatisticsWidget)
 {
     function AmqpPort(params)
     {
@@ -41,6 +42,7 @@ define(["dojo/query",
 
     AmqpPort.prototype.postParse = function (params)
     {
+        this.portStatisticsNode=query(".portStatistics", params.typeSpecificDetailsNode)[0]
         var that = this;
         var gridProperties = {
             height: 400,
@@ -121,6 +123,21 @@ define(["dojo/query",
         {
             this.virtualHostAliasesGrid.update(restData.virtualhostaliases);
         }
+
+        if (!this.portStatistics)
+        {
+            this.portStatistics = new StatisticsWidget({
+                category: "Port",
+                type: restData.type,
+                management: this.management,
+                defaultStatistics: ["connectionCount", "totalConnectionCount"]
+            });
+            this.portStatistics.placeAt(this.portStatisticsNode);
+            this.portStatistics.allStatsToggle.domNode.style.display = 'none';
+            this.portStatistics.startup();
+        }
+
+        this.portStatistics.update(restData.statistics);
     };
 
     return AmqpPort;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-plugins/management-http/src/main/java/resources/port/amqp/show.html
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/port/amqp/show.html b/broker-plugins/management-http/src/main/java/resources/port/amqp/show.html
index c27982f..7897e82 100644
--- a/broker-plugins/management-http/src/main/java/resources/port/amqp/show.html
+++ b/broker-plugins/management-http/src/main/java/resources/port/amqp/show.html
@@ -19,6 +19,9 @@
  -
  -->
 <div>
+    <br/>
+    <div class="portStatistics"></div>
+
     <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'VirtualHost Aliases'" class="clear virtualHostAliasesGridPanel">
         <div class="virtualHostAliasesGrid hidden"></div>
         <div class="clear">

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/e84273b0/broker-plugins/management-http/src/main/java/resources/showPort.html
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/showPort.html b/broker-plugins/management-http/src/main/java/resources/showPort.html
index 3435733..883f3f9 100644
--- a/broker-plugins/management-http/src/main/java/resources/showPort.html
+++ b/broker-plugins/management-http/src/main/java/resources/showPort.html
@@ -32,15 +32,6 @@
                <div class="formValue-valueCell typeValue"></div>
            </div>
        </div>
-        <div class="alignRight">
-            <div class="clear maxOpenConnections">
-                <div class="formLabel-labelCell">Open connections (current/maximum):</div>
-                <div class="formValue-valueCell">
-                    <span class="connectionCountValue"></span><span>/</span><span class="maxOpenConnectionsValue"></span>
-                </div>
-            </div>
-        </div>
-
         <div class="clear state">
            <div class="formLabel-labelCell">State:</div>
            <div class="formValue-valueCell stateValue"></div>
@@ -75,7 +66,10 @@
            <div class="formLabel-labelCell">Transports:</div>
            <div class="formValue-valueCell transportsValue multiLineValue"></div>
         </div>
-
+        <div class="clear maxOpenConnections">
+            <div class="formLabel-labelCell">Maximum number of connections:</div>
+            <div class="formValue-valueCell maxOpenConnectionsValue"></div>
+        </div>
         <div class="clear keyStore">
            <div class="formLabel-labelCell">Key Store:</div>
            <div class="formValue-valueCell keyStoreValue"></div>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org