[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