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 2017/09/18 11:08:07 UTC

qpid-broker-j git commit: QPID-7772: [Java Broker, WMC] Fix session statistics evaluation

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 89b39309b -> 57701cb6f


QPID-7772: [Java Broker, WMC] Fix session statistics evaluation

* Replace session grid with dgrid


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/57701cb6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/57701cb6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/57701cb6

Branch: refs/heads/master
Commit: 57701cb6ff8cb22152241e40c553498f3db83564
Parents: 89b3930
Author: Alex Rudyy <or...@apache.org>
Authored: Mon Sep 18 11:25:01 2017 +0100
Committer: Alex Rudyy <or...@apache.org>
Committed: Mon Sep 18 12:06:59 2017 +0100

----------------------------------------------------------------------
 .../resources/js/qpid/management/Connection.js  | 237 +++++++------------
 1 file changed, 91 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/57701cb6/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
index da92278..6aa7f3d 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
@@ -21,13 +21,10 @@
 define(["dojo/parser",
         "dojo/query",
         "dojo/_base/lang",
-        "dojo/_base/connect",
         "dijit/registry",
-        "qpid/common/properties",
         "qpid/common/updater",
         "qpid/common/util",
         "qpid/common/formatter",
-        "qpid/common/UpdatableStore",
         "qpid/common/StatisticsWidget",
         "qpid/management/query/QueryGrid",
         "dojox/html/entities",
@@ -36,13 +33,10 @@ define(["dojo/parser",
     function (parser,
               query,
               lang,
-              connect,
               registry,
-              properties,
               updater,
               util,
               formatter,
-              UpdatableStore,
               StatisticsWidget,
               QueryGrid,
               entities,
@@ -143,58 +137,57 @@ define(["dojo/parser",
 
             var userPreferences = this.management.userPreferences;
 
-            that.connectionData = {};
-            that.sessionsGrid = new UpdatableStore([], findNode("sessions"), [{
-                name: "Name",
-                field: "name",
-                width: "20%"
-            }, {
-                name: "Consumers",
-                field: "consumerCount",
-                width: "15%"
-            }, {
-                name: "Unacknowledged messages",
-                field: "unacknowledgedMessages",
-                width: "15%"
-            }, {
-                name: "Current store transaction start",
-                field: "transactionStartTime",
-                width: "25%",
-                formatter: function (transactionStartTime)
+            this.connectionData = {};
+
+            var transactionTimeFormatter = function (value, object)
+            {
+                if (value > 0)
                 {
-                    if (transactionStartTime > 0)
-                    {
-                        return userPreferences.formatDateTime(transactionStartTime, {
-                            selector: "time",
-                            addOffset: true,
-                            appendTimeZone: true
-                        });
-                    }
-                    else
-                    {
-                        return "N/A";
-                    }
+                    return userPreferences.formatDateTime(value, {
+                        selector: "time",
+                        addOffset: true,
+                        appendTimeZone: true
+                    });
                 }
-            }, {
-                name: "Current store transaction update",
-                field: "transactionUpdateTime",
-                width: "25%",
-                formatter: function (transactionUpdateTime)
+                else
                 {
-                    if (transactionUpdateTime > 0)
-                    {
-                        return userPreferences.formatDateTime(transactionUpdateTime, {
-                            selector: "time",
-                            addOffset: true,
-                            appendTimeZone: true
-                        });
-                    }
-                    else
+                    return "N/A";
+                }
+            };
+
+            this.sessionsGrid = new QueryGrid({
+                detectChanges: true,
+                rowsPerPage: 10,
+                transformer: util.queryResultToObjects,
+                management: this.management,
+                parentObject: this.modelObj,
+                category: "Session",
+                selectClause: "id,name,consumerCount,unacknowledgedMessages,transactionStartTime,transactionUpdateTime",
+                where: "to_string($parent.id) = '" + this.modelObj.id + "'",
+                orderBy: "name",
+                columns: [
                     {
-                        return "N/A";
+                        label: "Name",
+                        field: "name"
+                    }, {
+                        label: "Consumers",
+                        field: "consumerCount"
+                    }, {
+                        label: "Unacknowledged messages",
+                        field: "unacknowledgedMessages"
+                    }, {
+                        label: "Current store transaction start",
+                        field: "transactionStartTime",
+                        formatter: transactionTimeFormatter
+                    }, {
+                        label: "Current store transaction update",
+                        field: "transactionUpdateTime",
+                        formatter:transactionTimeFormatter
                     }
-                }
-            }]);
+                ]
+            }, findNode("sessions"));
+            this.sessionsGrid.on('rowBrowsed', lang.hitch(this, function(event){this.controller.showById(event.id);}));
+            this.sessionsGrid.startup();
 
             this.consumersGrid = new QueryGrid({
                 detectChanges: true,
@@ -244,33 +237,13 @@ define(["dojo/parser",
             // Add onShow handler to work around an issue with not rendering of grid columns before first update.
             // It seems if dgrid is created when tab is not shown (not active) the grid columns are not rendered.
             this.contentPane.on("show",
-                function()
+                lang.hitch(this, function()
                 {
-                    that.consumersGrid.resize();
-                });
+                    this.consumersGrid.resize();
+                    this.sessionsGrid.resize();
+                }));
         }
 
-        ConnectionUpdater.prototype.updateHeader = function ()
-        {
-            this.name.innerHTML = entities.encode(String(this.connectionData["name"]));
-            this.clientId.innerHTML = entities.encode(String(this.connectionData["clientId"]));
-            this.clientVersion.innerHTML = entities.encode(String(this.connectionData["clientVersion"]));
-            this.principal.innerHTML = entities.encode(String(this.connectionData["principal"]));
-            this.port.innerHTML = entities.encode(String(this.connectionData["port"]));
-            this.transport.innerHTML = entities.encode(String(this.connectionData["transport"]));
-            this.protocol.innerHTML = entities.encode(String(this.connectionData["protocol"]));
-            var remoteProcessPid = this.connectionData["remoteProcessPid"];
-            this.remoteProcessPid.innerHTML = entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A"));
-
-            this.sessionCountLimit.innerHTML = entities.encode(String(this.connectionData["sessionCountLimit"]));
-
-            var userPreferences = this.management.userPreferences;
-            this.createdTime.innerHTML = userPreferences.formatDateTime(this.connectionData["createdTime"], {
-                addOffset: true,
-                appendTimeZone: true
-            });
-        };
-
         ConnectionUpdater.prototype.update = function (callback)
         {
             if (!this.contentPane.selected && !callback)
@@ -278,31 +251,21 @@ define(["dojo/parser",
                 return;
             }
 
-            var that = this;
-
-            this.consumersGrid.updateData();
-            this.consumersGrid.resize();
-
-            that.management.load(this.modelObj,
-                {
-                    excludeInheritedContext: true,
-                    depth: 1
-                })
-                .then(function (data)
+            this.management.load(this.modelObj, { excludeInheritedContext: true, depth: 0})
+                .then(lang.hitch(this, function (data)
                 {
-                    that.connectionData = data;
+                    this.connectionData = data;
 
-
-                    if (!that.connectionStatistics)
+                    if (!this.connectionStatistics)
                     {
-                        that.connectionStatistics = new StatisticsWidget({
+                        this.connectionStatistics = new StatisticsWidget({
                             category:  "Connection",
                             type: null,
-                            management: that.management,
+                            management: this.management,
                             defaultStatistics: ["messagesIn", "messagesOut", "lastIoTime"]
                         });
-                        that.connectionStatistics.placeAt(that.connectionStatisticsNode);
-                        that.connectionStatistics.startup();
+                        this.connectionStatistics.placeAt(this.connectionStatisticsNode);
+                        this.connectionStatistics.startup();
                     }
 
                     if (callback)
@@ -310,60 +273,42 @@ define(["dojo/parser",
                         callback();
                     }
 
-                    var sessions = that.connectionData["sessions"];
-
-                    that.updateHeader();
-
-                    var sampleTime = new Date();
-
-                    if (that.sampleTime)
-                    {
-                        var samplePeriod = sampleTime.getTime() - that.sampleTime.getTime();
-
-                        if (sessions && that.sessions)
-                        {
-                            for (var i = 0; i < sessions.length; i++)
-                            {
-                                var session = sessions[i];
-                                for (var j = 0; j < that.sessions.length; j++)
-                                {
-                                    var oldSession = that.sessions[j];
-                                    if (oldSession.id === session.id)
-                                    {
-                                        var msgRate = (1000 * (session.messagesOut - oldSession.messagesOut))
-                                                      / samplePeriod;
-                                        session.msgRate = msgRate.toFixed(0) + "msg/s";
-
-                                        var bytesRate = (1000 * (session.bytesOut - oldSession.bytesOut))
-                                                        / samplePeriod;
-                                        var bytesRateFormat = formatter.formatBytes(bytesRate);
-                                        session.bytesRate = bytesRateFormat.value + bytesRateFormat.units + "/s";
-                                    }
-
-                                }
-
-                            }
-                        }
-
-                    }
-
-                    that.sampleTime = sampleTime;
-                    that.sessions = sessions;
-
-                    that.connectionStatistics.update(that.connectionData.statistics);
-
-                    // update sessions
-                    that.sessionsGrid.update(that.connectionData.sessions)
-                }, function (error)
+                    this._updateHeader();
+                    this.connectionStatistics.update(this.connectionData.statistics);
+                    this.connectionStatistics.resize();
+                    this.consumersGrid.updateData();
+                    this.sessionsGrid.updateData();
+                }), lang.hitch(this, function (error)
                 {
                     util.tabErrorHandler(error, {
-                        updater: that,
-                        contentPane: that.tabObject.contentPane,
-                        tabContainer: that.tabObject.controller.tabContainer,
-                        name: that.modelObj.name,
+                        updater: this,
+                        contentPane: this.tabObject.contentPane,
+                        tabContainer: this.tabObject.controller.tabContainer,
+                        name: this.modelObj.name,
                         category: "Connection"
                     });
-                });
+                }));
+        };
+
+
+        ConnectionUpdater.prototype._updateHeader = function ()
+        {
+            this.name.innerHTML = entities.encode(String(this.connectionData["name"]));
+            this.clientId.innerHTML = entities.encode(String(this.connectionData["clientId"]));
+            this.clientVersion.innerHTML = entities.encode(String(this.connectionData["clientVersion"]));
+            this.principal.innerHTML = entities.encode(String(this.connectionData["principal"]));
+            this.port.innerHTML = entities.encode(String(this.connectionData["port"]));
+            this.transport.innerHTML = entities.encode(String(this.connectionData["transport"]));
+            this.protocol.innerHTML = entities.encode(String(this.connectionData["protocol"]));
+            var remoteProcessPid = this.connectionData["remoteProcessPid"];
+            this.remoteProcessPid.innerHTML = entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A"));
+            this.sessionCountLimit.innerHTML = entities.encode(String(this.connectionData["sessionCountLimit"]));
+
+            var userPreferences = this.management.userPreferences;
+            this.createdTime.innerHTML = userPreferences.formatDateTime(this.connectionData["createdTime"], {
+                addOffset: true,
+                appendTimeZone: true
+            });
         };
 
         ConnectionUpdater.prototype._transformConsumerData = function (data)
@@ -379,7 +324,7 @@ define(["dojo/parser",
                     var oldConsumer = null;
                     for (var j = 0; j < this._previousConsumers.length; j++)
                     {
-                        if (this._previousConsumers[j].id == consumer.id)
+                        if (this._previousConsumers[j].id === consumer.id)
                         {
                             oldConsumer = this._previousConsumers[j];
                             break;


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