From 342a33146557dedb68cec7b07245fb629babb037 Mon Sep 17 00:00:00 2001 From: Jonas Finnemann Jensen Date: Mon, 4 Nov 2013 15:55:15 -0800 Subject: [PATCH] Tested an ready for deployment I think --- Formats.mkd | 99 +++ MANIFEST.in | 1 - Makefile | 18 +- README.md | 99 +-- dashboard/aggregator.py | 291 +++++++ dashboard/{processor.py => analysis.py} | 10 +- dashboard/fetch-aggregate-results.py | 77 -- dashboard/gzipclone.py | 61 ++ dashboard/{result2disk.py => results2disk.py} | 127 +-- dashboard/s3get.py | 176 +++++ dashboard/s3put.py | 170 ++++ dashboard/telemetry.js | 724 ++++++++++++++++++ dashboard/utils.py | 9 + html/index.html | 20 +- html/js/jquery.telemetry.js | 34 +- html/js/telemetry.js | 250 +++--- setup.py | 7 +- 17 files changed, 1856 insertions(+), 317 deletions(-) create mode 100644 Formats.mkd delete mode 100644 MANIFEST.in create mode 100644 dashboard/aggregator.py rename dashboard/{processor.py => analysis.py} (97%) delete mode 100644 dashboard/fetch-aggregate-results.py create mode 100644 dashboard/gzipclone.py rename dashboard/{result2disk.py => results2disk.py} (74%) create mode 100644 dashboard/s3get.py create mode 100644 dashboard/s3put.py create mode 100644 dashboard/telemetry.js create mode 100644 dashboard/utils.py diff --git a/Formats.mkd b/Formats.mkd new file mode 100644 index 00000000..d498157e --- /dev/null +++ b/Formats.mkd @@ -0,0 +1,99 @@ +File Format used for Telemetry Dashboard +======================================== +_All format described here are internal, not for external consumption._ + +External users should include `telemetry.js` and consume data through this +interface. Reading the raw data is hard and these data format may change, but +the javascript interface is designed to be reasonably stable. + + + + + + +Processor Output Format +----------------------- + +/my/dim/../ JSON + +JSON: + revision: + buildid: + histogram: + + + +Web Facing Bucket Layout +------------------------ + +LATEST_VERSION = v2 +v1/ + data +v2/ + check-points.json + check-points/ (one for every week) + YYYYMMDDhhmmss/ + versions.json + FILES_PROCESSED + FILES_MISSING + // + MEASURE-by-build-date.json + MEASURE-by-submission-date.json + filter-tree.json + histograms.json + revisions.json + latest-current.json = most recent current, contents of versions.json + current/ + YYYYMMDDhhmmss/ + versions.json + FILES_PROCESSED + FILES_MISSING + // + MEASURE-by-build-date.json + MEASURE-by-submission-date.json + filter-tree.json + histograms.json + revisions.json + + +Web Facing Format +----------------- + + +// + +MEASURE.json +{ + : [ + bucket0, + bucket1, + ..., + bucketN, + sum, # -1, if missing + log_sum, # -1, if missing + log_sum_squares, # -1, if missing + sum_squares_lo, # -1, if missing + sum_squares_hi, # -1, if missing + count + ], + ... +} + +filters.json +{ + _id: filter_id, + name: "filter-name", +