[rhmessaging-commits] rhmessaging commits: r1200 - in mgmt: notes and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Thu Nov 1 12:15:59 EDT 2007


Author: justi9
Date: 2007-11-01 12:15:59 -0400 (Thu, 01 Nov 2007)
New Revision: 1200

Modified:
   mgmt/cumin/python/cumin/measurement.py
   mgmt/cumin/python/cumin/measurement.strings
   mgmt/cumin/python/cumin/model.py
   mgmt/notes/justin-todo.txt
Log:
Remodels the current stats view.  Adds rates.  Adds units to the
measure metadata for use in rate display.  Shortens some measure names
a little.



Modified: mgmt/cumin/python/cumin/measurement.py
===================================================================
--- mgmt/cumin/python/cumin/measurement.py	2007-11-01 04:44:46 UTC (rev 1199)
+++ mgmt/cumin/python/cumin/measurement.py	2007-11-01 16:15:59 UTC (rev 1200)
@@ -8,6 +8,10 @@
 strings = StringCatalog(__file__)
 
 class MeasurementSet(ItemSet):
+    unit_abbrevs = dict()
+    unit_abbrevs["message"] = "msg"
+    unit_abbrevs["transaction"] = "trans"
+    
     def __init__(self, app, name, category):
         super(MeasurementSet, self).__init__(app, name)
 
@@ -28,11 +32,13 @@
     def render_item_value(self, session, measure):
         return measure.get_value()
 
-    def render_item_high(self, session, measure):
-        return measure.get_high()
+    def render_item_extra(self, session, measure):
+        if measure.highlow:
+            return "<small>high</small> %i<br/><small>low</small> %i" \
+                   % (measure.get_high() or 0, measure.get_low() or 0)
+        else:
+            unit = self.unit_abbrevs.get(measure.unit, measure.unit)
+            return "%i <small>%s/sec</small>" % (measure.get_rate(), unit)
 
-    def render_item_low(self, session, measure):
-        return measure.get_low()
-
     def render_item_average(self, session, measure):
         return "%0.2f" % (sum(measure.values) / float(len(measure.values)))

Modified: mgmt/cumin/python/cumin/measurement.strings
===================================================================
--- mgmt/cumin/python/cumin/measurement.strings	2007-11-01 04:44:46 UTC (rev 1199)
+++ mgmt/cumin/python/cumin/measurement.strings	2007-11-01 16:15:59 UTC (rev 1200)
@@ -1,24 +1,11 @@
-[MeasurementSet.css]
-table.MeasurementSet td, table.MeasurementSet th {
-  text-align: right;
-}
 
-table.MeasurementSet th.label {
-  text-align: left;
-}
 
 [MeasurementSet.html]
-<table class="MeasurementSet mobjects">
-  <col class="name"/>
-  <col class="data"/>
-  <col class="data"/>
-  <col class="data"/>
-
+<table class="mobjects">
   <tr>
-    <th class="label">Statistic</th>
-    <th>Current</th>
-    <th>High</th>
-    <th>Low</th>
+    <th style="width: 45%;">Statistic</th>
+    <th style="width: 20%;" class="ralign">Current</th>
+    <th style="width: 35%;" class="ralign"></th>
   </tr>
 
   {items}
@@ -27,7 +14,6 @@
 [MeasurementSet.item_html]
 <tr>
   <th class="label">{item_title}</th>
-  <td>{item_value}</td>
-  <td>{item_high}</td>
-  <td>{item_low}</td>
+  <td class="ralign">{item_value}</td>
+  <td class="ralign">{item_extra}</td>
 </tr>

Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py	2007-11-01 04:44:46 UTC (rev 1199)
+++ mgmt/cumin/python/cumin/model.py	2007-11-01 16:15:59 UTC (rev 1200)
@@ -315,6 +315,7 @@
         self.type = type
         self.categories = ()
         self.title = None
+        self.unit = None
         self.__value = None
         self.__values = list()
         self.class_ = class_
@@ -327,6 +328,9 @@
             self.add_value(0)
 
     def add_value(self, value):
+        if value == None:
+            raise Exception()
+
         self.__value = value
         self.__values.append(value)
 
@@ -354,18 +358,27 @@
         else:
             return self.__value
 
+    # get recent values, with latest value at index 0
     def get_values(self, limit=100):
         if self.class_:
             stats = self.class_.select().orderBy("recTime").reversed()
-            return [getattr(x, self.name) for x in stats[:limit + 1]]
+            return [getattr(x, self.name) for x in stats[:limit]]
         else:
-            return self.__values
+            return self.__values[-limit:]
 
+    def get_rate(self, interval=10):
+        values = self.get_values(2)
+
+        if len(values) > 1 and values[0] != None:
+            return (values[0] - values[1]) / interval
+        else:
+            return 0
+
     def get_high(self):
         return self.__high
 
     def get_low(self):
-        return self.__low 
+        return self.__low
 
 class Queue(MeasuredModelObject):
     def __init__(self, model):
@@ -388,45 +401,53 @@
         # General
 
         measure = Measurement("msgDepth", "int", MgmtQueueStats)
-        measure.title = "Message depth"
+        measure.title = "Message Depth"
+        measure.unit = "message"
         measure.categories = ("message", "general")
         measure.highlow = True
         self.measurements.append(measure)
 
         measure = Measurement("msgTotalEnqueues", "int", MgmtQueueStats)
-        measure.title = "Messages enqueued"
+        measure.title = "Msgs. enqueued"
+        measure.unit = "message"
         measure.categories = ("message", "general")
         self.measurements.append(measure)
 
         measure = Measurement("msgTotalDequeues", "int", MgmtQueueStats)
-        measure.title = "Messages dequeued"
+        measure.title = "Msgs. dequeued"
+        measure.unit = "message"
         measure.categories = ("message", "general")
         self.measurements.append(measure)
 
         measure = Measurement("byteDepth", "int", MgmtQueueStats)
         measure.title = "Byte depth"
+        measure.unit = "byte"
         measure.categories = ("byte", "general")
         measure.highlow = True
         self.measurements.append(measure)
 
         measure = Measurement("byteTotalEnqueues", "int", MgmtQueueStats)
         measure.title = "Bytes enqueued"
+        measure.unit = "byte"
         measure.categories = ("byte", "general")
         self.measurements.append(measure)
 
         measure = Measurement("byteTotalDequeues", "int", MgmtQueueStats)
         measure.title = "Bytes dequeued"
+        measure.unit = "byte"
         measure.categories = ("byte", "general")
         self.measurements.append(measure)
 
         measure = Measurement("consumers", "int", MgmtQueueStats)
         measure.title = "Consumers"
+        measure.unit = "consumer"
         measure.categories = ("general")
         measure.highlow = True
         self.measurements.append(measure)
 
         measure = Measurement("unackedMessages", "int", MgmtQueueStats)
-        measure.title = "Unacknowledged messages"
+        measure.title = "Unacked msgs."
+        measure.unit = "message"
         measure.categories = ("general")
         self.measurements.append(measure)
 
@@ -439,6 +460,7 @@
 
         measure = Measurement("diskPages", "int", MgmtQueueStats)
         measure.title = "Disk pages"
+        measure.unit = "page"
         measure.categories = ("general")
         self.measurements.append(measure)
 
@@ -450,63 +472,75 @@
         # Transactional
 
         measure = Measurement("msgTxEnqueues", "int", MgmtQueueStats)
-        measure.title = "Messages enqueued"
+        measure.title = "Msgs. enqueued"
+        measure.unit = "message"
         measure.categories = ("message", "transactional")
         self.measurements.append(measure)
 
         measure = Measurement("msgTxDequeues", "int", MgmtQueueStats)
-        measure.title = "Messages dequeued"
+        measure.title = "Msgs. dequeued"
+        measure.unit = "message"
         measure.categories = ("message", "transactional")
         self.measurements.append(measure)
 
         measure = Measurement("byteTxEnqueues", "int", MgmtQueueStats)
         measure.title = "Bytes enqueued"
+        measure.unit = "byte"
         measure.categories = ("byte", "transactional")
         self.measurements.append(measure)
 
         measure = Measurement("byteTxDequeues", "int", MgmtQueueStats)
         measure.title = "Bytes dequeued"
+        measure.unit = "byte"
         measure.categories = ("byte", "transactional")
         self.measurements.append(measure)
 
         measure = Measurement("enqueueTxStarts", "int", MgmtQueueStats)
         measure.title = "Enq. trans. started"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("enqueueTxCommits", "int", MgmtQueueStats)
         measure.title = "Enq. trans. committed"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("enqueueTxRejects", "int", MgmtQueueStats)
         measure.title = "Enq. trans. rejected"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("enqueueTxCount", "int", MgmtQueueStats)
         measure.title = "Enq. trans. pending"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         measure.highlow = True
         self.measurements.append(measure)
 
         measure = Measurement("dequeueTxStarts", "int", MgmtQueueStats)
         measure.title = "Deq. trans. started"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("dequeueTxCommits", "int", MgmtQueueStats)
         measure.title = "Deq. trans. committed"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("dequeueTxRejects", "int", MgmtQueueStats)
         measure.title = "Deq. trans. rejected"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         self.measurements.append(measure)
 
         measure = Measurement("dequeueTxCount", "int", MgmtQueueStats)
         measure.title = "Deq. trans. pending"
+        measure.unit = "transaction"
         measure.categories = ("transaction")
         measure.highlow = True
         self.measurements.append(measure)
@@ -514,22 +548,26 @@
         # Persistent
 
         measure = Measurement("msgPersistEnqueues", "int", MgmtQueueStats)
-        measure.title = "Messages enqueued"
+        measure.title = "Msgs. enqueued"
+        measure.unit = "message"
         measure.categories = ("message", "persistent")
         self.measurements.append(measure)
 
         measure = Measurement("msgPersistDequeues", "int", MgmtQueueStats)
-        measure.title = "Messages dequeued"
+        measure.title = "Msgs. dequeued"
+        measure.unit = "message"
         measure.categories = ("message", "persistent")
         self.measurements.append(measure)
 
         measure = Measurement("bytePersistEnqueues", "int", MgmtQueueStats)
         measure.title = "Bytes enqueued"
+        measure.unit = "byte"
         measure.categories = ("byte", "persistent")
         self.measurements.append(measure)
 
         measure = Measurement("bytePersistDequeues", "int", MgmtQueueStats)
         measure.title = "Bytes dequeued"
+        measure.unit = "byte"
         measure.categories = ("byte", "persistent")
         self.measurements.append(measure)
 

Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt	2007-11-01 04:44:46 UTC (rev 1199)
+++ mgmt/notes/justin-todo.txt	2007-11-01 16:15:59 UTC (rev 1200)
@@ -6,8 +6,6 @@
 
  * Queue
 
-   - Add msg/byte enq/deq rates
-
    - Split queues view into bytes and messages modes
 
    - Add a msg enq rate msg deq rate chart
@@ -80,3 +78,5 @@
 
  * Add a frame() accessor to Widget
 
+ * The * text-decoration: none rule is apparently expensive; find
+   another way




More information about the rhmessaging-commits mailing list