Buildbot/Talos/DataFormat

From MozillaWiki
< Buildbot‎ | Talos
Revision as of 05:45, 26 January 2012 by Jhammel (talk | contribs) (→‎Talos Data Formatting: note browser_output.txt)
Jump to navigation Jump to search

Talos Data Formatting

Data is packaged as a file in an HTTP post object.

VALUES/AVERAGE

Two different types of data to be sent:

  1. A single value to be stored as the 'average' in the test_runs table
  2. A set of (interval, value) pairs to be stored in the test_run_values table, 'average' to be calculated by collector script

First type will be called 'AVERAGE' second called 'VALUES'. All data is formatted using comma separated notation.

date_run = seconds since epoch (linux time stamp) page_name = is unique to pages when combined with the pageset_id from test table

  • for sending interval, value pairs
START
VALUES
machine_name,test_name,branch_name,ref_changeset,ref_build_id,date_run
interval0,value0,page_name0
interval1,value1,page_name1
...
intervalEND,valueEND,page_id
END
  • for sending a single value
 START
 AVERAGE
 machine_name,test_name,branch_name,ref_changeset,ref_build_id,date_run
 value0
 END

Examples

values input:

START
VALUES
machine_1, test_1, branch_1, changeset_1, 13, 1229477017
1,1.0,page_01
2,2.0,page_02
3,3.0,page_03
4,1.0,page_04
5,2.0,page_05
6,3.0,page_06
7,1.0,page_07
8,2.0,page_08
9,3.0,page_09
10,1.0,page_10
11,2.0,page_11
12,3.0,page_12
END

response:

Content-type: text/plain 

RETURN\ttest_1\tgraph.html#type=series&tests=[{"test":45,"branch":3455,"machine":234,"testrun"=6667}]
RETURN\ttest_1\t2.00\tgraph.html#tests=[{"test":45,"branch":3455,"machine":234}]

average input:

START
AVERAGE
machine_1, test_1, branch_1, changeset_1, 13, 1229477017
2.0
END

response:

Content-type: text/plain

RETURN\ttest_1\t2.00\tgraph.html#tests=[{"test":45,"branch":3455,"machine":234}]

AMO

Proposed 3rd type will be called 'AMO'. Return code simple Success/Failure. All data is formatted using comma separated notation.

date_run = seconds since epoch (linux time stamp) page_name = is unique to pages when combined with the pageset_id from test table

START
AMO
browser_name,browser_version,addon_id
machine_name,test_name,branch_name,ref_changeset,ref_build_id,date_run
interval0,value0,page_name0
interval1,value1,page_name1
...
intervalEND,valueEND,page_id
END


Examples

From a Pageload Test
START
AMO
Firefox,3.6,1066
machine_1, tp4, branch_1, changeset_1, 13, 1229477017
1,1.0,page_01
2,2.0,page_02
3,3.0,page_03
4,1.0,page_04
5,2.0,page_05
6,3.0,page_06
7,1.0,page_07
8,2.0,page_08
9,3.0,page_09
10,1.0,page_10
11,2.0,page_11
12,3.0,page_12
END

response:

Content-type: text/plain 

RETURN\tSuccess
From a Startup Test
START
AMO
Firefox,3.6,1066
machine_1, ts, branch_1, changeset_1, 13, 1229477017
1,1500,NULL
2,862,NULL
3,863,NULL
4,860,NULL
5,865,NULL
6,865,NULL
7,867,NULL
8,865,NULL
9,870,NULL
10,889,NULL
11,865,NULL
12,864,NULL
13,864,NULL
14,870,NULL
15,871,NULL
16,869,NULL
17,868,NULL
18,870,NULL
19,864,NULL
20,865,NULL
END

response:

Content-type: text/plain 

RETURN\tSuccess

Schema for AMO Perf Results Storage

perf_results & perf_appversion tables

NOTE: need mapping between what talos is sending and what we want to insert into these tables.

CREATE TABLE `perf_results` (
   `id` int(11) unsigned NOT NULL auto_increment,
   `addon_id` int(11) unsigned NOT NULL,
   `appversion_id` int(11) unsigned NOT NULL,
   `average` float NOT NULL default 0,
   `os` varchar(255) NOT NULL default ,
   `test` enum('ts'),
   `created` datetime NOT NULL,
   `modified` datetime NOT NULL,
   PRIMARY KEY  (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE `perf_appversions` (
   `id` int(11) unsigned NOT NULL auto_increment,
   `app` enum('fx'),
   `version` varchar(255) NOT NULL default ,
   `created` datetime NOT NULL,
   `modified` datetime NOT NULL,
   PRIMARY KEY  (`id`)
) DEFAULT CHARSET=utf8;
ALTER TABLE `perf_results` ADD CONSTRAINT `perf_results_addon_id_key` FOREIGN KEY (`addon_id`) REFERENCES `addons` (`id`);
ALTER TABLE `perf_results` ADD CONSTRAINT `perf_results_appversion_key` FOREIGN KEY (`appversion_id`) REFERENCES `perf_appversions` (`id`);

browser_output.txt

The data is harvested from browser_output.txt:

__start_tp_report
_x_x_mozilla_page_load,4070.909090909091,NaN,NaN
_x_x_mozilla_page_load_details,avgmedian|4070.909090909091|average|4070.73|minimum|NaN|maximum|NaN|stddev|NaN
|i|pagename|median|mean|min|max|runs|
|0;gearflowers.svg;162.5;163;162;226;226;165;163;162;162
|1;composite-scale.svg;77;77.25;77;115;115;77;77;78;77
|2;composite-scale-opacity.svg;31.5;31.75;30;62;62;31;34;30;32
|3;composite-scale-rotate.svg;31;31;29;60;60;29;32;33;30
|4;composite-scale-rotate-opacity.svg;31;31.5;29;36;35;31;31;29;36
|5;hixie-001.xml;15065;15063.75;15059;15086;15059;15065;15065;15066;15086
|6;hixie-002.xml;15064.5;15060.5;15047;15070;15070;15064;15066;15065;15047
|7;hixie-003.xml;5038;5038.75;5037;5054;5042;5037;5037;5054;5039
|8;hixie-004.xml;5081.5;5081.5;5079;5087;5087;5084;5079;5084;5079
|9;hixie-005.xml;6369.5;6367.5;6349;6405;6362;6405;6377;6382;6349
|10;hixie-006.xml;9270;9276;9239;9342;9239;9325;9278;9342;9262
|11;hixie-007.xml;3623.5;3619.25;3601;3653;3627;3629;3653;3601;3620
__end_tp_report
__start_cc_report
_x_x_mozilla_cycle_collect,1137
__end_cc_report
__startTimestamp1327556458940__endTimestamp
__startBeforeLaunchTimestamp1327556130230__endBeforeLaunchTimestamp
__startAfterTerminationTimestamp1327556459158__endAfterTerminationTimestamp