r4747 - branches/scale_testing/cumin/python/cumin
by tmckay@fedoraproject.org
Author: tmckay
Date: 2011-04-28 15:27:40 +0000 (Thu, 28 Apr 2011)
New Revision: 4747
Modified:
branches/scale_testing/cumin/python/cumin/stat.py
Log:
Merge latest
Modified: branches/scale_testing/cumin/python/cumin/stat.py
===================================================================
--- branches/scale_testing/cumin/python/cumin/stat.py 2011-04-27 19:27:47 UTC (rev 4746)
+++ branches/scale_testing/cumin/python/cumin/stat.py 2011-04-28 15:27:40 UTC (rev 4747)
@@ -590,8 +590,8 @@
if mode == "rate":
titles = ["%s / sec" % x.title for x in stats]
- else:
- titles = ["%s%s" % ((type == "percent") and "Percent " or "", x.title) for x in stats]
+ else:
+ titles = ["%s%s" % ((type == "percent") and "Percent " or "", x.short_title and x.short_title or x.title) for x in stats]
title_xy = chart.plot_legend(titles, colors)
12 years, 11 months
r4746 - trunk/wooly/python/wooly
by tmckay@fedoraproject.org
Author: tmckay
Date: 2011-04-27 19:27:47 +0000 (Wed, 27 Apr 2011)
New Revision: 4746
Modified:
trunk/wooly/python/wooly/server.py
Log:
Limit the maximum number of server threads in a cumin-web instance.
Modified: trunk/wooly/python/wooly/server.py
===================================================================
--- trunk/wooly/python/wooly/server.py 2011-04-27 17:15:44 UTC (rev 4745)
+++ trunk/wooly/python/wooly/server.py 2011-04-27 19:27:47 UTC (rev 4746)
@@ -210,7 +210,8 @@
((self.server.host, self.server.port),
self.server.service_request,
request_queue_size=32,
- numthreads=32)
+ numthreads=32,
+ max=32)
self.wsgi_server.environ["wsgi.version"] = (1, 1)
12 years, 12 months
r4745 - trunk/cumin/python/cumin
by croberts@fedoraproject.org
Author: croberts
Date: 2011-04-27 17:15:44 +0000 (Wed, 27 Apr 2011)
New Revision: 4745
Modified:
trunk/cumin/python/cumin/stat.py
Log:
Update the png charts to use the same labels as the flash charts.
Modified: trunk/cumin/python/cumin/stat.py
===================================================================
--- trunk/cumin/python/cumin/stat.py 2011-04-27 14:51:02 UTC (rev 4744)
+++ trunk/cumin/python/cumin/stat.py 2011-04-27 17:15:44 UTC (rev 4745)
@@ -590,8 +590,8 @@
if mode == "rate":
titles = ["%s / sec" % x.title for x in stats]
- else:
- titles = ["%s%s" % ((type == "percent") and "Percent " or "", x.title) for x in stats]
+ else:
+ titles = ["%s%s" % ((type == "percent") and "Percent " or "", x.short_title and x.short_title or x.title) for x in stats]
title_xy = chart.plot_legend(titles, colors)
12 years, 12 months
r4743 - in trunk/cumin: model python/cumin/grid
by croberts@fedoraproject.org
Author: croberts
Date: 2011-04-27 12:49:06 +0000 (Wed, 27 Apr 2011)
New Revision: 4743
Modified:
trunk/cumin/model/rosemary.xml
trunk/cumin/python/cumin/grid/scheduler.py
Log:
In order to address BZ https://bugzilla.redhat.com/show_bug.cgi?id=699818 I have rearranged the charts on the Scheduler->Performance page. In addition to shuffling some of the graphs around, some of the data has been swapped around so that cumulative stats are only in graphs with other cumulative stats (otherwise, the cumulative stats would eventually swamp any other data on the graph). Some labels have been adjusted to provide clarity and reduce redundancy.
Modified: trunk/cumin/model/rosemary.xml
===================================================================
--- trunk/cumin/model/rosemary.xml 2011-04-26 20:16:52 UTC (rev 4742)
+++ trunk/cumin/model/rosemary.xml 2011-04-27 12:49:06 UTC (rev 4743)
@@ -342,12 +342,12 @@
<statistic name="JobsExitedCum">
<title>Jobs exited cumulative</title>
- <short>Exited cumulative</short>
+ <short>Exited</short>
</statistic>
<statistic name="ShadowExceptionsCum">
<title>Shadow exceptions cumulative</title>
- <short>Cumulative</short>
+ <short>Shadow exceptions</short>
</statistic>
<statistic name="JobsStartedCum">
@@ -357,14 +357,24 @@
<statistic name="MeanTimeToStartCum">
<title>Mean time to start cumulative</title>
- <short>Mean time cumulative</short>
+ <short>Time to start</short>
</statistic>
<statistic name="MeanRunningTimeCum">
<title>Mean running time cumulative</title>
- <short>Mean running Cumulative</short>
+ <short>Running time</short>
</statistic>
+ <statistic name="MeanTimeToStart">
+ <title>Mean time to start</title>
+ <short>Time to start</short>
+ </statistic>
+
+ <statistic name="MeanRunningTime">
+ <title>Mean running time</title>
+ <short>Running time</short>
+ </statistic>
+
<statistic name="SumTimeToStartCum">
<title>Sum time to start cumulative</title>
</statistic>
Modified: trunk/cumin/python/cumin/grid/scheduler.py
===================================================================
--- trunk/cumin/python/cumin/grid/scheduler.py 2011-04-26 20:16:52 UTC (rev 4742)
+++ trunk/cumin/python/cumin/grid/scheduler.py 2011-04-27 12:49:06 UTC (rev 4743)
@@ -162,48 +162,48 @@
charts = WidgetSet(app, "charts")
self.add_child(charts)
- chart = StatFlashChart(app, "submitted", scheduler)
- chart.title = "Job totals"
- chart.duration.param.default = "3600"
- chart.stats = ("JobsSubmitted", "JobsStarted", "JobsCompleted")
- charts.add_child(chart)
-
chart = StatFlashChart(app, "started", scheduler)
chart.title = "Job rates"
chart.stats = ("JobSubmissionRate", "JobStartRate", "JobCompletionRate")
chart.duration.param.default = "3600"
charts.add_child(chart)
- chart = StatFlashChart(app, "completed", scheduler)
- chart.title = "Cumulative jobs"
- chart.stats = ("JobsSubmittedCum", "JobsStartedCum", "JobsCompletedCum")
+ chart = StatFlashChart(app, "submitted", scheduler)
+ chart.title = "Job totals"
chart.duration.param.default = "3600"
+ chart.stats = ("JobsSubmitted", "JobsStarted", "JobsCompleted")
charts.add_child(chart)
chart = StatFlashChart(app, "exited", scheduler)
- chart.title = "Jobs exited"
- chart.stats = ("JobsExited", "JobsExitedCum")
+ chart.title = "Jobs exited/Shadow exceptions"
+ chart.stats = ("JobsExited", "ShadowExceptions")
chart.duration.param.default = "3600"
charts.add_child(chart)
chart = StatFlashChart(app, "exception", scheduler)
- chart.title = "Shadow exceptions"
- chart.stats = ("ShadowExceptions", "ShadowExceptionsCum")
+ chart.title = "Jobs exited/Shadow exceptions cumulative"
+ chart.stats = ("JobsExitedCum", "ShadowExceptionsCum")
chart.duration.param.default = "3600"
charts.add_child(chart)
chart = StatFlashChart(app, "start_time", scheduler)
- chart.title = "Mean start times"
- chart.stats = ("MeanTimeToStart", "MeanTimeToStartCum")
+ chart.title = "Mean times"
+ chart.stats = ("MeanTimeToStart", "MeanRunningTime")
chart.duration.param.default = "3600"
charts.add_child(chart)
chart = StatFlashChart(app, "running_time", scheduler)
- chart.title = "Mean running times"
- chart.stats = ("MeanRunningTime", "MeanRunningTimeCum")
+ chart.title = "Mean times cumulative"
+ chart.stats = ("MeanTimeToStartCum", "MeanRunningTimeCum")
chart.duration.param.default = "3600"
charts.add_child(chart)
+ chart = StatFlashChart(app, "completed", scheduler)
+ chart.title = "Cumulative jobs"
+ chart.stats = ("JobsSubmittedCum", "JobsStartedCum", "JobsCompletedCum")
+ chart.duration.param.default = "3600"
+ charts.add_child(chart)
+
def render_title(self, session):
return "Performance"
12 years, 12 months
r4742 - trunk/cumin/model
by eallen@fedoraproject.org
Author: eallen
Date: 2011-04-26 20:16:52 +0000 (Tue, 26 Apr 2011)
New Revision: 4742
Modified:
trunk/cumin/model/rosemary.xml
Log:
Restore the correct display titles for the cumulative statistics on Scheduler.
Modified: trunk/cumin/model/rosemary.xml
===================================================================
--- trunk/cumin/model/rosemary.xml 2011-04-26 19:50:03 UTC (rev 4741)
+++ trunk/cumin/model/rosemary.xml 2011-04-26 20:16:52 UTC (rev 4742)
@@ -318,79 +318,76 @@
<title>Registered socket count</title>
</statistic>
- <statistic name="JobsSubmitted">"
+ <statistic name="JobsSubmitted">
<title>Submitted</title>
</statistic>
- <statistic name="JobsStarted">"
+
+ <statistic name="JobsStarted">
<title>Started</title>
</statistic>
- <statistic name="JobsCompleted">"
+
+ <statistic name="JobsCompleted">
<title>Completed</title>
</statistic>
- <statistic name="JobsSubmittedCum">"
+
+ <statistic name="JobsSubmittedCum">
<title>Jobs submitted cumulative</title>
+ <short>Submitted</short>
</statistic>
+
<statistic name="JobsCompletedCum">
<title>Jobs completed cumulative</title>
+ <short>Completed</short>
</statistic>
+
<statistic name="JobsExitedCum">
<title>Jobs exited cumulative</title>
+ <short>Exited cumulative</short>
</statistic>
+
<statistic name="ShadowExceptionsCum">
<title>Shadow exceptions cumulative</title>
+ <short>Cumulative</short>
</statistic>
+
<statistic name="JobsStartedCum">
<title>Jobs started cumulative</title>
+ <short>Started</short>
</statistic>
+
<statistic name="MeanTimeToStartCum">
<title>Mean time to start cumulative</title>
+ <short>Mean time cumulative</short>
</statistic>
+
<statistic name="MeanRunningTimeCum">
<title>Mean running time cumulative</title>
+ <short>Mean running Cumulative</short>
</statistic>
+
<statistic name="SumTimeToStartCum">
<title>Sum time to start cumulative</title>
</statistic>
+
<statistic name="SumRunningTimeCum">
<title>Sum running time cumulative</title>
</statistic>
+
<statistic name="JobCompletionRate">
<short>Completion</short>
</statistic>
+
<statistic name="JobStartRate">
<short>Start</short>
</statistic>
+
<statistic name="JobSubmissionRate">
<short>Submission</short>
</statistic>
- <statistic name="JobsSubmittedCum">
- <short>Submitted</short>
- </statistic>
- <statistic name="JobsCompletedCum">
- <short>Completed</short>
- </statistic>
- <statistic name="JobsStartedCum">
- <short>Started</short>
- </statistic>
+
<statistic name="JobsExited">
<short>Exited</short>
</statistic>
- <statistic name="JobsExitedCum">
- <short>Exited cumulative</short>
- </statistic>
- <statistic name="MeanRunningTimeCum">
- <short>Cumulative</short>
- </statistic>
- <statistic name="MeanTimeToStartCum">
- <short>Cumulative</short>
- </statistic>
- <statistic name="ShadowExceptionsCum">
- <short>Cumulative</short>
- </statistic>
- <statistic name="JobsExitedCum">
- <short>Cumulative</short>
- </statistic>
-
</class>
<class name="Collector">
12 years, 12 months
r4741 - trunk/cumin/etc
by tmckay@fedoraproject.org
Author: tmckay
Date: 2011-04-26 19:50:03 +0000 (Tue, 26 Apr 2011)
New Revision: 4741
Modified:
trunk/cumin/etc/cumin.conf
Log:
Short default vacuum and expiration interval to 15 minutes (900 seconds)
in the out-of-the-box configuration. Run vacuuming/expiration from a
single instance (data.grid)
BZ699782
Modified: trunk/cumin/etc/cumin.conf
===================================================================
--- trunk/cumin/etc/cumin.conf 2011-04-26 17:36:58 UTC (rev 4740)
+++ trunk/cumin/etc/cumin.conf 2011-04-26 19:50:03 UTC (rev 4741)
@@ -28,14 +28,19 @@
# Default cumin-data configuration at installation.
# Assumes 'persona' setting in web section is 'default'
+# Expiration of samples and vacuuming of the database is handled
+# by the data.grid thread.
datas: data.grid, data.grid-slots, data.grid-submissions, data.sesame, data.other
# If the 'persona' setting in the web section is set to 'grid' then
-# the 'data.other' section name may be omitted from 'datas' as follows
+# the 'data.other' section name may be omitted from 'datas' as follows.
#datas: data.grid, data.grid-slots, data.grid-submissions, data.sesame
# If the 'persona' setting in the web section is set to 'messaging' then
-# the 'data.grid*' section names may be omitted from 'datas' as follows
+# the 'data.grid*' section names may be omitted from 'datas' as follows.
+# ***NOTE*** that in this case the data.grid section will not be included
+# so the expire and vacuum settings should be changed in one of these sections.
+# Failure to do so will cause the database to grow continually!
#datas: data.sesame, data.other
# To run a single cumin-data process in a small deployment set 'datas' as follows
@@ -56,8 +61,10 @@
[data]
# log-file: $CUMIN_HOME/log/data.log
+# expire-enabled: True
# expire-interval: 3600
# expire-threshold: 86400
+# vacuum-enabled: True
# vacuum-interval: 3600
# include-classes: [all]
# exclude-classes: [none]
@@ -76,40 +83,50 @@
[data.grid]
# log-file: $CUMIN_HOME/log/data.grid.log
-# expire-interval: 3600
+# expire-enabled: True
+expire-interval: 900
# expire-threshold: 86400
-# vacuum-interval: 3600
+# vacuum-enabled: True
+vacuum-interval: 900
include-classes: com.redhat.grid:*
exclude-classes: com.redhat.grid:Slot, com.redhat.grid:Submission
[data.grid-slots]
# log-file: $CUMIN_HOME/log/data.grid-slots.log
+expire-enabled: False
# expire-interval: 3600
# expire-threshold: 86400
+vacuum-enabled: False
# vacuum-interval: 3600
include-classes: com.redhat.grid:Slot
# exclude-classes: [none]
[data.grid-submissions]
# log-file: $CUMIN_HOME/log/data.grid-submissions.log
+expire-enabled: False
# expire-interval: 3600
# expire-threshold: 86400
+vacuum-enabled: False
# vacuum-interval: 3600
include-classes: com.redhat.grid:Submission
# exclude-classes: [none]
[data.sesame]
# log-file: $CUMIN_HOME/log/data.sesame.log
+expire-enabled: False
# expire-interval: 3600
# expire-threshold: 86400
+vacuum-enabled: False
# vacuum-interval: 3600
include-classes: com.redhat.sesame:*
# exclude-classes: [none]
[data.other]
# log-file: $CUMIN_HOME/log/data.messaging.log
+expire-enabled: False
# expire-interval: 3600
# expire-threshold: 86400
+vacuum-enabled: False
# vacuum-interval: 3600
# include-classes: [all]
exclude-classes: com.redhat.grid:*, com.redhat.sesame:*
@@ -139,6 +156,25 @@
# [data]
+# expire-enabled: True
+# Whether or not the instance runs a thread which periodically expires samples.
+# Running the expire thread from more than one instance is okay but unnecessary
+
+# expire-interval: 3600
+# How often the expire thread runs, in seconds
+
+# expire-threshold: 86400
+# The maximum age of a sample in seconds. If it's older, it will be deleted when
+# the expire thread runs.
+
+# vacuum-enabled: True
+# Whether or not the instance runs a thread which periodically vacuums the
+# database. Running the vacuum thread from more than one instance is okay but
+# unnecessary.
+
+# vacuum-interval: 3600
+# How often the vacuum thread runs, in seconds
+
# include-classes: [all]
# A comma separated list of QMF classes. The default value is all
# classes in all packages. The cumin-data instance will be bound to
12 years, 12 months
r4740 - trunk/parsley/python/parsley
by tmckay@fedoraproject.org
Author: tmckay
Date: 2011-04-26 17:36:58 +0000 (Tue, 26 Apr 2011)
New Revision: 4740
Modified:
trunk/parsley/python/parsley/loggingex.py
Log:
Add exception handlers in/around handler.emit() to swallow exceptions.
Ultimate failure of log message results in a warning written to sys.stderr
BZ699819
Modified: trunk/parsley/python/parsley/loggingex.py
===================================================================
--- trunk/parsley/python/parsley/loggingex.py 2011-04-26 14:54:46 UTC (rev 4739)
+++ trunk/parsley/python/parsley/loggingex.py 2011-04-26 17:36:58 UTC (rev 4740)
@@ -1,5 +1,6 @@
import logging
import os
+import sys
from stat import ST_DEV, ST_INO
import traceback
@@ -62,6 +63,13 @@
return stream
def emit(self, record):
+ # Never want to crash writing out a log entry
+ try:
+ self._emit(record)
+ except:
+ sys.stderr.write("Warning, logging exception writing " + self.baseFilename + "\n")
+
+ def _emit(self, record):
# Following snippett taken from WatchedFileHandler in Python 2.6
# Reopen the stream if the original file has been moved
if not os.path.exists(self.baseFilename):
@@ -71,8 +79,14 @@
stat = os.stat(self.baseFilename)
changed = (stat[ST_DEV] != self.dev) or (stat[ST_INO] != self.ino)
if changed and self.stream is not None:
- self.stream.flush()
- self.stream.close()
+ try:
+ self.stream.flush()
+ except:
+ pass
+ try:
+ self.stream.close()
+ except:
+ pass
self.stream = self._reopen()
if stat is None:
stat = os.stat(self.baseFilename)
12 years, 12 months
r4739 - trunk/cumin/python/cumin/grid
by croberts@fedoraproject.org
Author: croberts
Date: 2011-04-26 14:54:46 +0000 (Tue, 26 Apr 2011)
New Revision: 4739
Modified:
trunk/cumin/python/cumin/grid/dashboard.strings
trunk/cumin/python/cumin/grid/scheduler.strings
Log:
To address BZ https://bugzilla.redhat.com/show_bug.cgi?id=699473 I have modified the footnote string to indicate "all non-cumulative stats".
Modified: trunk/cumin/python/cumin/grid/dashboard.strings
===================================================================
--- trunk/cumin/python/cumin/grid/dashboard.strings 2011-04-26 14:32:45 UTC (rev 4738)
+++ trunk/cumin/python/cumin/grid/dashboard.strings 2011-04-26 14:54:46 UTC (rev 4739)
@@ -58,7 +58,7 @@
[SchedulerPerformance.html]
<div id="{id}" class="{class}">
<h2 class="title">{title}</h2>
- <div class="footnote">Average scheduler sampling window is {footnote_value} seconds</div>
+ <div class="footnote">*The non-cumulative stats on this page are averaged over a {footnote_value} second sampling window</div>
<div class="aggregates">
{rate_widgets}
<div style="clear: left;"></div>
Modified: trunk/cumin/python/cumin/grid/scheduler.strings
===================================================================
--- trunk/cumin/python/cumin/grid/scheduler.strings 2011-04-26 14:32:45 UTC (rev 4738)
+++ trunk/cumin/python/cumin/grid/scheduler.strings 2011-04-26 14:54:46 UTC (rev 4739)
@@ -36,5 +36,5 @@
</div>
<div style="clear:both;"></div>
<div class="statsnote">
- *The stats on this page are averaged over a {statswindow} second sampling window
+ *The non-cumulative stats on this page are averaged over a {statswindow} second sampling window
</div>
12 years, 12 months
r4738 - in trunk/cumin: model python/cumin/grid
by croberts@fedoraproject.org
Author: croberts
Date: 2011-04-26 14:32:45 +0000 (Tue, 26 Apr 2011)
New Revision: 4738
Modified:
trunk/cumin/model/rosemary.xml
trunk/cumin/python/cumin/grid/scheduler.py
Log:
In order to address BZ https://bugzilla.redhat.com/show_bug.cgi?id=699481 I have updated the labels of some of the stats/graphs.
Modified: trunk/cumin/model/rosemary.xml
===================================================================
--- trunk/cumin/model/rosemary.xml 2011-04-26 12:32:50 UTC (rev 4737)
+++ trunk/cumin/model/rosemary.xml 2011-04-26 14:32:45 UTC (rev 4738)
@@ -318,6 +318,15 @@
<title>Registered socket count</title>
</statistic>
+ <statistic name="JobsSubmitted">"
+ <title>Submitted</title>
+ </statistic>
+ <statistic name="JobsStarted">"
+ <title>Started</title>
+ </statistic>
+ <statistic name="JobsCompleted">"
+ <title>Completed</title>
+ </statistic>
<statistic name="JobsSubmittedCum">"
<title>Jobs submitted cumulative</title>
</statistic>
Modified: trunk/cumin/python/cumin/grid/scheduler.py
===================================================================
--- trunk/cumin/python/cumin/grid/scheduler.py 2011-04-26 12:32:50 UTC (rev 4737)
+++ trunk/cumin/python/cumin/grid/scheduler.py 2011-04-26 14:32:45 UTC (rev 4738)
@@ -163,7 +163,7 @@
self.add_child(charts)
chart = StatFlashChart(app, "submitted", scheduler)
- chart.title = "Submitted/started/completed"
+ chart.title = "Job totals"
chart.duration.param.default = "3600"
chart.stats = ("JobsSubmitted", "JobsStarted", "JobsCompleted")
charts.add_child(chart)
@@ -175,7 +175,7 @@
charts.add_child(chart)
chart = StatFlashChart(app, "completed", scheduler)
- chart.title = "Cumulative"
+ chart.title = "Cumulative jobs"
chart.stats = ("JobsSubmittedCum", "JobsStartedCum", "JobsCompletedCum")
chart.duration.param.default = "3600"
charts.add_child(chart)
12 years, 12 months
r4737 - trunk/cumin/python/cumin/grid
by eallen@fedoraproject.org
Author: eallen
Date: 2011-04-26 12:32:50 +0000 (Tue, 26 Apr 2011)
New Revision: 4737
Modified:
trunk/cumin/python/cumin/grid/negotiator.py
Log:
Fix for BZ 696789 - Quota values were dropping to 0. This happened when a call to get the individual values failed without an exception due to a timeout.
Modified: trunk/cumin/python/cumin/grid/negotiator.py
===================================================================
--- trunk/cumin/python/cumin/grid/negotiator.py 2011-04-25 19:40:57 UTC (rev 4736)
+++ trunk/cumin/python/cumin/grid/negotiator.py 2011-04-26 12:32:50 UTC (rev 4737)
@@ -170,7 +170,7 @@
for group in raw_configs[config]:
if raw_configs[config][group].error:
info[group][config] = raw_configs[config][group].error
- else:
+ elif raw_configs[config][group].got_data:
info[group][config] = raw_configs[config][group].data['Value']
except Exception, e:
log.exception(e)
12 years, 12 months