[rhmessaging-commits] rhmessaging commits: r1127 - mgmt/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Oct 22 09:35:12 EDT 2007


Author: justi9
Date: 2007-10-22 09:35:12 -0400 (Mon, 22 Oct 2007)
New Revision: 1127

Modified:
   mgmt/cumin/python/cumin/demo.py
   mgmt/cumin/python/cumin/model.py
   mgmt/cumin/python/cumin/page.strings
   mgmt/cumin/python/cumin/queue.py
   mgmt/cumin/python/cumin/queue.strings
Log:
Adds all the queue instrumentation fields from the latest mgmt schema
and displays them in the queue statistics tab.



Modified: mgmt/cumin/python/cumin/demo.py
===================================================================
--- mgmt/cumin/python/cumin/demo.py	2007-10-19 21:17:36 UTC (rev 1126)
+++ mgmt/cumin/python/cumin/demo.py	2007-10-22 13:35:12 UTC (rev 1127)
@@ -164,14 +164,14 @@
                     for queue in vhost.queue_items():
                         queue.lock()
                         try:
-                            for stat in queue.stats:
-                                if stat.type == "int" and random() < 0.33:
+                            for measure in queue.measurements:
+                                if measure.type == "int" and random() < 0.33:
                                     if random() < 0.5:
-                                        value = stat.get_value()
-                                        stat.add_value(value + randint(4, 12))
+                                        value = measure.get_value()
+                                        measure.add_value(value + randint(4, 12))
                                     else:
-                                        value = stat.get_value() - randint(3, 9)
-                                        stat.add_value(value > 0 and value or 0)
+                                        value = measure.get_value() - randint(3, 9)
+                                        measure.add_value(value > 0 and value or 0)
 
                             queue.message_count += 1
 

Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py	2007-10-19 21:17:36 UTC (rev 1126)
+++ mgmt/cumin/python/cumin/model.py	2007-10-22 13:35:12 UTC (rev 1127)
@@ -268,7 +268,7 @@
 
         writer.write("</realm>")
 
-class Statistic(object):
+class Measurement(object):
     def __init__(self, name, type):
         self.name = name
         self.type = type
@@ -284,6 +284,9 @@
         self.__value = value
         self.values.append(value)
 
+        if len(self.values) > 1000:
+            del self.values[0]
+
     def get_value(self):
         return self.__value
 
@@ -302,53 +305,141 @@
         self.error_count = 0
         self.warning_count = 0
 
-        self.stats = list()
+        self.measurements = list()
 
-        stat = Statistic("msgTotalEnqueues", "int")
-        stat.title = "Total messages enqueued"
-        stat.categories = ("message", "general")
-        self.stats.append(stat)
+        # General
 
-        stat = Statistic("msgTotalDequeues", "int")
-        stat.title = "Total messages dequeued"
-        stat.categories = ("message", "general")
-        self.stats.append(stat)
+        measure = Measurement("msgDepth", "int")
+        measure.title = "Message depth"
+        measure.categories = ("message", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgTxEnqueues", "int")
-        stat.title = "Transactional messages enqueued"
-        stat.categories = ("message", "transactional")
-        self.stats.append(stat)
+        measure = Measurement("msgTotalEnqueues", "int")
+        measure.title = "Messages enqueued"
+        measure.categories = ("message", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgTxDequeues", "int")
-        stat.title = "Transactional messages dequeued"
-        stat.categories = ("message", "transactional")
-        self.stats.append(stat)
+        measure = Measurement("msgTotalDequeues", "int")
+        measure.title = "Messages dequeued"
+        measure.categories = ("message", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgPersistEnqueues", "int")
-        stat.title = "Persistent messages enqueued"
-        stat.categories = ("message", "persistent")
-        self.stats.append(stat)
+        measure = Measurement("byteDepth", "int")
+        measure.title = "Byte depth"
+        measure.categories = ("byte", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgPersistDequeues", "int")
-        stat.title = "Persistent messages dequeued"
-        stat.categories = ("message", "persistent")
-        self.stats.append(stat)
+        measure = Measurement("byteTotalEnqueues", "int")
+        measure.title = "Bytes enqueued"
+        measure.categories = ("byte", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgDepth", "int")
-        stat.title = "Current number of messages in queue"
-        stat.categories = ("message", "general")
-        self.stats.append(stat)
+        measure = Measurement("byteTotalDequeues", "int")
+        measure.title = "Bytes dequeued"
+        measure.categories = ("byte", "general")
+        self.measurements.append(measure)
 
-        stat = Statistic("msgDepthHigh", "int")
-        stat.title = "Highest message depth in last x hours"
-        stat.categories = ("message", "general")
-        self.stats.append(stat)
+        # Disk
 
-        stat = Statistic("msgDepthLow", "int")
-        stat.title = "Lowest message depth in last x hours"
-        stat.categories = ("message", "general")
-        self.stats.append(stat)
+        measure = Measurement("diskPageSize", "int")
+        measure.title = "Disk page size"
+        measure.categories = ("disk")
+        self.measurements.append(measure)
 
+        measure = Measurement("diskPages", "int")
+        measure.title = "Disk pages"
+        measure.categories = ("disk")
+        self.measurements.append(measure)
+
+        measure = Measurement("diskAvailableSize", "int")
+        measure.title = "Disk available size"
+        measure.categories = ("disk")
+        self.measurements.append(measure)
+
+        # Transactional
+
+        measure = Measurement("msgTxEnqueues", "int")
+        measure.title = "Messages enqueued"
+        measure.categories = ("message", "transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("msgTxDequeues", "int")
+        measure.title = "Messages dequeued"
+        measure.categories = ("message", "transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("byteTxEnqueues", "int")
+        measure.title = "Bytes enqueued"
+        measure.categories = ("byte", "transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("byteTxDequeues", "int")
+        measure.title = "Bytes dequeued"
+        measure.categories = ("byte", "transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("enqueueTxStarts", "int")
+        measure.title = "Enqueue transactions started"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("enqueueTxCommits", "int")
+        measure.title = "Enqueue transactions committed"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("enqueueTxRejects", "int")
+        measure.title = "Enqueue transactions rejected"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("enqueueTxCount", "int")
+        measure.title = "Enqueue transactions pending"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("dequeueTxStarts", "int")
+        measure.title = "Dequeue transactions started"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("dequeueTxCommits", "int")
+        measure.title = "Dequeue transactions committed"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("dequeueTxRejects", "int")
+        measure.title = "Dequeue transactions rejected"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        measure = Measurement("dequeueTxCount", "int")
+        measure.title = "Dequeue transactions pending"
+        measure.categories = ("transactional")
+        self.measurements.append(measure)
+
+        # Persistent
+
+        measure = Measurement("msgPersistEnqueues", "int")
+        measure.title = "Messages enqueued"
+        measure.categories = ("message", "persistent")
+        self.measurements.append(measure)
+
+        measure = Measurement("msgPersistDequeues", "int")
+        measure.title = "Messages dequeued"
+        measure.categories = ("message", "persistent")
+        self.measurements.append(measure)
+
+        measure = Measurement("bytePersistEnqueues", "int")
+        measure.title = "Bytes enqueued"
+        measure.categories = ("byte", "persistent")
+        self.measurements.append(measure)
+
+        measure = Measurement("bytePersistDequeues", "int")
+        measure.title = "Bytes dequeued"
+        measure.categories = ("byte", "persistent")
+        self.measurements.append(measure)
+
     def remove(self):
         for binding in self.binding_items().copy():
             binding.remove()

Modified: mgmt/cumin/python/cumin/page.strings
===================================================================
--- mgmt/cumin/python/cumin/page.strings	2007-10-19 21:17:36 UTC (rev 1126)
+++ mgmt/cumin/python/cumin/page.strings	2007-10-22 13:35:12 UTC (rev 1127)
@@ -395,6 +395,19 @@
   width: 80%;
 }
 
+td.quadrant {
+  width: 50%;
+}
+
+td.quadrant h2 {
+  font-weight: bold;
+}
+
+td.quadrant table {
+  border: 1px dotted #ddd;
+  margin: 1em;
+}
+
 [CuminPage.html]
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py	2007-10-19 21:17:36 UTC (rev 1126)
+++ mgmt/cumin/python/cumin/queue.py	2007-10-22 13:35:12 UTC (rev 1127)
@@ -340,24 +340,39 @@
     def render_cancel_content(self, session, binding):
         return "No, Cancel"
 
-class QueueStatistics(ItemSet):
+class MeasurementSet(ItemSet):
+    def __init__(self, app, name, category):
+        super(MeasurementSet, self).__init__(app, name)
+
+        self.category = category
+
+    def get_items(self, session, queue):
+        measures = sorted_by(queue.measurements, "title")
+
+        for measure in queue.measurements:
+            if self.category not in measure.categories:
+                measures.remove(measure)
+
+        return measures
+
+    def render_item_title(self, session, measure):
+        return measure.title
+
+    def render_item_value(self, session, measure):
+        return measure.get_value()
+
+    def render_item_average_value(self, session, measure):
+        return "%0.2f" % (sum(measure.values) / float(len(measure.values)))
+
+class QueueStatistics(Widget):
     def __init__(self, app, name):
         super(QueueStatistics, self).__init__(app, name)
 
-        self.trans = BooleanParameter(app, "trans")
-        self.add_parameter(self.trans)
+        self.add_child(MeasurementSet(app, "general_stats", "general"))
+        self.add_child(MeasurementSet(app, "disk_stats", "disk"))
+        self.add_child(MeasurementSet \
+                       (app, "transactional_stats", "transactional"))
+        self.add_child(MeasurementSet(app, "persistent_stats", "persistent"))
 
     def render_title(self, session, queue):
         return "Statistics"
-
-    def get_items(self, session, queue):
-        return queue.stats
-
-    def render_item_title(self, session, stat):
-        return stat.title
-
-    def render_item_value(self, session, stat):
-        return stat.get_value()
-
-    def render_item_average_value(self, session, stat):
-        return "%0.2f" % (sum(stat.values) / float(len(stat.values)))

Modified: mgmt/cumin/python/cumin/queue.strings
===================================================================
--- mgmt/cumin/python/cumin/queue.strings	2007-10-19 21:17:36 UTC (rev 1126)
+++ mgmt/cumin/python/cumin/queue.strings	2007-10-22 13:35:12 UTC (rev 1127)
@@ -163,18 +163,47 @@
 }())
 </script>
 
+[QueueStatistics.css]
+table.QueueStatistics {
+  width: 100%;
+}
+
 [QueueStatistics.html]
+<table class="QueueStatistics">
+  <tr>
+    <td class="quadrant">
+      <h2>General</h2>
+      {general_stats}
+    </td>
+    <td class="quadrant">
+      <h2>Disk</h2>
+      {disk_stats}
+    </td>
+  </tr>
+  <tr>
+    <td class="quadrant">
+      <h2>Transactional Messages</h2>
+      {transactional_stats}
+    </td>
+    <td class="quadrant">
+      <h2>Persistent Messages</h2>
+      {persistent_stats}
+    </td>
+  </tr>
+</table>
+
+[MeasurementSet.html]
 <table class="mobjects">
   <tr>
     <th>Statistic</th>
-    <th>Current Value</th>
-    <th>Average Value</th>
+    <th>Current</th>
+    <th>Average</th>
   </tr>
 
   {items}
 </table>
 
-[QueueStatistics.item_html]
+[MeasurementSet.item_html]
 <tr>
   <th>{item_title}</th>
   <td>{item_value}</td>




More information about the rhmessaging-commits mailing list