tags:

views:

38

answers:

3

I have a hudson job that performs a stress test, torturing a virtual machine for several hours with some CPU- and IO-intensive tasks. The build scripts write a few interesting results into several files which are then stored as build artifacts. For example, one result is the time it took to perform certain operations.

I need to monitor the development of these results. For example, I need to know when the time for certain operations suddenly increases. So I need to aggregate these results over several (all?) builds. The ideal scenario would be if I could download the aggregated data from hudson.

I've been thinking about several possibilities to do this, but they all seem quite complicated. That's when I thought someone else might have had that problem already.
Maybe there already are some plugins doing this?

A: 

What about creating the results as JUnit results (XML files) so the results can be recorded by Hudson and will be aggregated by Hudson for different builds.

khmarbaise
I have no idea how to create a certain XML format from data that a batch script simply writes into files.
sbi
+1  A: 

I have not persoanlly use this plugin yet, but this might fits your need if you can just generate the xml file according to this plugin's format according to its description.

PerfPublisher Plugin

Tao
I have no idea how to create a certain XML format from data that a batch script simply writes into files.
sbi
@sbi, If you have control of the batch script, you can make it spit out whatever format you want (XML is just text with a bunch of angle brackets). If you don't have control, then `grep` (or `FIND`) is your friend.
Dave Bacher
+1  A: 

If you can write a script to extract the relevant numbers from the log files, you can use the Plot Plugin to visualize the data. We use this for simple stuff like tracking the executable size of build artifacts.

The Plot Plugin is more manual than the Perf Plugin mentioned by @Tao, but it might be easier to integrate depending on how much data murging the Perf Plugin requires.


Update: Java-style properties files (which are used as input to the Plot Plugin) are just simple name-value pairs in a text file, e.g.:

YVALUE=1234

Here's a build script that shows a (very stupid) example:

echo YVALUE=$RANDOM > buildtime.properties

This example plots a random number with each build.

Dave Bacher
Mhmm. "Data for the plots are pulled from Java properties files..." There's no Java knowledge here, so I have to ask what might be obvious: What are "Java property files"?
sbi
@sbi, I added an example to my answer.
Dave Bacher

related questions