OLD | NEW |
---|---|
1 Cluster Telemetry | 1 Cluster Telemetry |
2 ================= | 2 ================= |
3 | 3 |
4 ### Contents ### | 4 ### Contents ### |
5 | 5 |
6 * [Overview](#overview) | 6 * [Overview](#overview) |
7 * [Framework Usage](#framework_usage) | 7 * [Framework Usage](#framework_usage) |
8 * [System Architecture](#system_architecture) | 8 * [System Architecture](#system_architecture) |
9 + [System Diagram](#system_diagram) | 9 + [System Diagram](#system_diagram) |
10 + [Detailed explanation of steps](#detailed_explanation) | 10 + [Detailed explanation of steps](#detailed_explanation) |
11 * [Code](#code) | 11 * [Code](#code) |
12 * [Contact Us](#contact_us) | 12 * [Contact Us](#contact_us) |
13 | 13 |
14 <a name="overview"></a> | 14 <a name="overview"></a> |
15 Overview | 15 Overview |
16 -------- | 16 -------- |
17 | 17 |
18 Cluster Telemetry allows you to run [telemetry](https://www.chromium.org/develop ers/telemetry)'s benchmarks, lua scripts and other tasks using multiple reposito ry patches through Alexa's [top 1 million](http://s3.amazonaws.com/alexa-static/ top-1m.csv.zip) web pages. | 18 Cluster Telemetry allows you to run [telemetry](https://www.chromium.org/develop ers/telemetry)'s benchmarks, lua scripts and other tasks using multiple reposito ry patches through Alexa's [top 1 million](http://s3.amazonaws.com/alexa-static/ top-1m.csv.zip) web pages. |
19 Developers can use the framework to measure the performance of their patch again st the top subset of the internet on both Desktop and Android. | 19 Developers can use the framework to measure the performance of their patch again st the top subset of the internet on both Desktop and Android. |
20 tl;dr documentation is [here](https://www.chromium.org/developers/cluster-teleme try). | |
20 | 21 |
21 SKP files are a binary format for the draw commands Chromium sends to Skia for r asterization. The goal of the project started off with wanting to collect a larg e repository of 10k SKP files. This repository, after incremental changes in app roaches, has since grown to ~910k and now supports running all telemetry benchma rks. The top level feature request of this project was [skia:1268](https://bug.s kia.org/1268). | 22 SKP files are a binary format for the draw commands Chromium sends to Skia for r asterization. The goal of the project started off with wanting to collect a larg e repository of 10k SKP files. This repository, after incremental changes in app roaches, has since grown to ~910k and now supports running all telemetry benchma rks. The top level feature request of this project was [skia:1268](https://bug.s kia.org/1268). |
22 | 23 |
23 A web application has been created on Google Compute Engine that automates the p rocess of capturing new archives and running telemetry benchmarks at a click of a button; results are emailed to the requester and the web application contains complete history of runs with links to results. You can run telemetry benchmarks at http://ct.skia.org. | 24 A web application has been created on Google Compute Engine that automates the p rocess of capturing new archives and running telemetry benchmarks at a click of a button; results are emailed to the requester and the web application contains complete history of runs with links to results. You can run telemetry benchmarks at http://ct.skia.org. |
24 | 25 |
25 The framework also contains the ability to run lua scripts on the SKP repository to scrape web pages. It only takes a few minutes to run a lua scraping script o n ~910k SKP files. | 26 The framework also contains the ability to run lua scripts on the SKP repository to scrape web pages. It only takes a few minutes to run a lua scraping script o n ~910k SKP files. |
26 | 27 |
27 Most users will use these two features: | 28 Most users will use these three features: |
28 | 29 |
29 * Chromium Perf. Documentation [here](https://www.chromium.org/developers/cluste r-telemetry). Webpage [here](https://ct.skia.org/chromium_perf/). | 30 * Chromium Perf. Documentation [here](https://docs.google.com/document/d/1GhqosQ cwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/). Webpage [here](https://ct.skia.org/chro mium_perf/). |
30 * Run Lua Scripts. Documentation about lua bindings is [here](https://skia.org/u ser/special/lua). Webpage [here](https://ct.skia.org/lua_script/). | 31 * Chromium Analysis. Documentation [here](https://docs.google.com/document/d/1zi of4lNwDFXyerVbEocdF3_DdUHVnD3FKYB9rShztuE/). Webpage [here](https://ct.skia.org/ chromium_analysis/). |
32 * Run Lua Scripts on SKP repositories. Documentation about lua bindings is [here ](https://skia.org/user/special/lua). Webpage [here](https://ct.skia.org/lua_scr ipt/). | |
33 | |
34 Note: The top 1M web pages includes potentially offensive content. Please use ca ution when visiting page links from the framework. | |
dogben
2016/06/28 17:48:16
IIRC, even the top 100 web pages has some question
rmistry
2016/06/28 17:51:19
Yep, you do not have to go too far down the list..
| |
31 | 35 |
32 | 36 |
33 <a name="framework_usage"></a> | 37 <a name="framework_usage"></a> |
34 Framework Usage | 38 Framework Usage |
35 --------------- | 39 --------------- |
36 | 40 |
37 The Chromium Perf tryserver in CT has been used to gather perf data over the top 10k web pages for the following Chromium projects: | 41 The Chromium Perf page in CT has been used to gather perf data over the top 10k web pages for the following Chromium projects: |
38 | 42 |
39 * Slimming paint | 43 * Slimming paint |
40 * Performance data for layer squashing and compositing overlap map | 44 * Performance data for layer squashing and compositing overlap map |
41 * SkPaint in Graphics Context | 45 * SkPaint in Graphics Context |
42 * Culling | 46 * Culling |
43 * New paint dictionary | 47 * New paint dictionary |
44 | 48 |
45 blink-dev threads discussing how to make Chrome faster using the results gathere d from CT: | 49 blink-dev threads discussing how to make Chrome faster using the results gathere d from CT: |
46 | 50 |
47 * [Main thread attribution for top million sites](https://groups.google.com/a/ch romium.org/d/msg/blink-dev/-R47hzmkdig/xILVgczlKgQJ) | 51 * [Main thread attribution for top million sites](https://groups.google.com/a/ch romium.org/d/msg/blink-dev/-R47hzmkdig/xILVgczlKgQJ) |
(...skipping 20 matching lines...) Expand all Loading... | |
68 | 72 |
69 <a name="system_diagram"></a> | 73 <a name="system_diagram"></a> |
70 ### System Diagram | 74 ### System Diagram |
71 | 75 |
72 ![CT System Diagram](ct-system-diagram.svg) | 76 ![CT System Diagram](ct-system-diagram.svg) |
73 | 77 |
74 | 78 |
75 <a name="detailed_explanation"></a> | 79 <a name="detailed_explanation"></a> |
76 ### Detailed explanation of steps | 80 ### Detailed explanation of steps |
77 | 81 |
78 1. User submits a Lua script task, a Performance task, or an Admin task (rebuild chrome, recreate pagesets, recreate webpage archives, capture SKPs) using the G CE web application [here](http://ct.skia.org). | 82 1. User submits a Lua script task, a Performance task, an Analysis task, or an A dmin task (build chrome, recreate pagesets, recreate webpage archives, capture S KPs) using the GCE web application [here](http://ct.skia.org). |
79 | 83 |
80 2. Each task is exposed by the web application in JSON. The CT master polls the web application and picks up new tasks. | 84 2. Each task is exposed by the web application in JSON. The CT master polls the web application and picks up new tasks. It has the ability to run tasks in paral lel. |
81 | 85 |
82 3. The master pushes new tasks to all the workers using the master scripts [here ](https://skia.googlesource.com/buildbot/+/master/ct/go/master_scripts/). The ma ster scripts then check to see when the workers are done with the requested task . | 86 3. The master triggers swarming tasks using the master scripts [here](https://sk ia.googlesource.com/buildbot/+/master/ct/go/master_scripts/). The master scripts then check to see when the tasks are done. |
83 | 87 |
84 4. The workers execute the task using the worker scripts [here](https://skia.goo glesource.com/buildbot/+/master/ct/go/worker_scripts/). All generated artifacts (CSV files, logs, SKP files, archives, etc) are then stored locally and copied t o Google Storage. Worker logs are available [here](https://uberchromegw.corp.goo gle.com/i/skia-ct-master/all_logs). | 88 4. Swarming bots in the CT pool execute the task using the worker scripts [here] (https://skia.googlesource.com/buildbot/+/master/ct/go/worker_scripts/). All gen erated artifacts (CSV files, logs, SKP files, archives, etc) are then copied to Google Storage. |
85 | 89 |
86 5. The master scripts periodically check the workers to see when they are done w ith the requested task. Once the workers are done the generated artifacts are th en read from Google Storage and consolidated (if required). | 90 5. Once swarming tasks complete, master scripts read the generated artifacts fro m Google Storage and consolidate them (if required). |
87 | 91 |
88 6. The master scripts then email results of the task to the user who requested i t. The master scripts also update the status of the task to completed on App Eng ine. | 92 6. The master scripts then email results of the task to the user who requested i t. The scripts also update the status of the task to completed on the web applic ation. |
89 | 93 |
90 | 94 |
91 <a name="code"></a> | 95 <a name="code"></a> |
92 Code | 96 Code |
93 ---- | 97 ---- |
94 | 98 |
95 Cluster Telemetry is primarily written in Go with a few python scripts. The fram ework lives in [master/ct](https://skia.googlesource.com/buildbot/+/master/ct). | 99 Cluster Telemetry is primarily written in Go with a few python scripts. The fram ework lives in [master/ct](https://skia.googlesource.com/buildbot/+/master/ct). |
96 | 100 |
97 <a name="contact_us"></a> | 101 <a name="contact_us"></a> |
98 Contact Us | 102 Contact Us |
99 ---------- | 103 ---------- |
100 | 104 |
101 If you have questions, please email <cluster-telemetry@chromium.org> or contact rmistry@ directly. | 105 If you have questions, please email <cluster-telemetry@chromium.org> or contact rmistry@ directly. |
OLD | NEW |