Buildbot/Talos/DataFormat
Talos Data Formatting
Data is packaged as a file in an HTTP post object.
VALUES/AVERAGE
Two different types of data to be sent:
- A single value to be stored as the 'average' in the test_runs table
- 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