[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