11.8. Monitoring: The Experiment Telemetry command

Once you have configured both the client and server sides, experimental data collection can begin. If the experiment requires only an hour or two of data collection and occurs in a laboratory setting at a specific time and date, then no specialized support for monitoring is required. In this case, the easiest way to monitor that data is being sent is by simply watching the Tomcat console to see that data is being received from the subjects as they work.

Other experiments might allow more flexibility on the part of the subjects, and allow them to work on a task over a period of several days at times of their choosing. In this case, it can be helpful to the Experiment Administrator to have a way of checking what data, if any, has been sent by the subjects over a period of days.

The "Experiment Telemetry" command is provided on the Admin page to Experiment Administrators to facilitate the monitoring of an experiment. The command accepts a time interval, the name of an Experiment, the name of a Telemetry Chart, and a set of (optional) parameters for the Chart. Upon invocation, the command will generate a set of Charts, one per subject. By defining the Telemetry Chart appropriately, the Experiment Administrator can use these charts to monitor the progress of data collection at a high level.

Consider, for example, our example experiment in which two users, smith@hawaii.edu and jones@hawaii.edu, are each developing a bowling game application over a period of days. The hypothesis requires us to collect data on time and coverage.

The first step in this form of experiment monitoring is to define a Telemetry Chart that tracks the Development Time and Coverage associated with a given Project. Example 11.1, “DevTime and Coverage Chart Definition” illustrates such a Chart definition.

Example 11.1. DevTime and Coverage Chart Definition

y-axis yAxis(label) = {
  label, "integer"
};
y-axis percentageYAxis(label) = {
  label, "integer", 0, 100
};
streams DevTimeStream() = {
   "Dev Time", DevTime("*", "*", "**", "true")
};
streams CoverageStream() = {
   "Coverage Percentage", Coverage("Percentage", "**", "line")
};
chart DevTimeAndCoverageChart()  = {
  "DevTime and Coverage", 
  (DevTimeStream(), yAxis("hours")),
  (CoverageStream(), percentageYAxis("coverage percent")) 
};

Once the Experiment Administrator has defined a Chart that provides telemetry streams for each of the kinds of data to be collected during the experiment, the Experiment Telemetry Command can be used to track this data over the course of the experiment. For example, Figure 11.8, “ Telemetry Chart for Smith ” and Figure 11.9, “ Telemetry Chart for Jones ” illustrate the results of invoking the Experiment Telemetry command for the TFDvTLD Experiment over the course of eight days for the users smith@hawaii.edu and jones@hawaii.edu.

Figure 11.8.  Telemetry Chart for Smith


Telemetry Chart for Smith

Figure 11.9.  Telemetry Chart for Jones


Telemetry Chart for Jones