Update CT documentation on Skia site.

BUG=skia:4063
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1314413002

Review URL: https://codereview.chromium.org/1314413002
This commit is contained in:
benjaminwagner 2015-08-28 10:34:47 -07:00 committed by Commit bot
parent b236d1a37b
commit fd0eca2583
4 changed files with 18 additions and 13 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 281 KiB

View File

@ -0,0 +1,2 @@
Source for ct-system-diagram.svg is
https://docs.google.com/a/google.com/drawings/d/1q6NuBx5fZ_KwgiBcx_dK0cfwpEQJdypBrIPoTrGrlF4/edit?usp=sharing

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

View File

@ -18,17 +18,16 @@ Overview
Cluster Telemetry allows you to run [telemetry](https://www.chromium.org/developers/telemetry)'s benchmarks, lua scripts and other tasks using multiple repository patches through Alexa's [top 1 million](http://s3.amazonaws.com/alexa-static/top-1m.csv.zip) web pages.
Developers can use the framework to measure the performance of their patch against the top subset of the internet on both Desktop and Android.
SKP files are a binary format for the draw commands Chromium sends to Skia for rasterization. The goal of the project started off with wanting to collect a large repository of 10k SKP files. This repository, after incremental changes in approaches, has since grown to ~900k and now supports running all telemetry benchmarks. The top level feature request of this project was [skia:1268](https://code.google.com/p/skia/issues/detail?id=1268).
SKP files are a binary format for the draw commands Chromium sends to Skia for rasterization. The goal of the project started off with wanting to collect a large repository of 10k SKP files. This repository, after incremental changes in approaches, has since grown to ~910k and now supports running all telemetry benchmarks. The top level feature request of this project was [skia:1268](https://code.google.com/p/skia/issues/detail?id=1268).
A web application has been created on App Engine that automates the process 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.
A web application has been created on Google Compute Engine that automates the process 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.
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 scrapping script on ~900k SKP files.
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 on ~900k SKP files.
These are the different parts of the framework:
Most users will use these two features:
* Chromium Perf Tryserver. Documentation [here](https://www.chromium.org/developers/cluster-telemetry). Webpage [here](http://skia-tree-status.appspot.com/skia-telemetry/chromium_try).
* Skia Correctness Tryserver. Documentation [here](http://goto/skiatryclustertelemetry). Webpage [here](http://skia-tree-status.appspot.com/skia-telemetry/skia_try).
* Run Lua Scripts. Documentation about lua bindings is [here](https://skia.org/user/special/lua). Webpage [here](http://skia-tree-status.appspot.com/skia-telemetry/lua_script).
* Chromium Perf. Documentation [here](https://www.chromium.org/developers/cluster-telemetry). Webpage [here](https://ct.skia.org/chromium_perf/).
* Run Lua Scripts. Documentation about lua bindings is [here](https://skia.org/user/special/lua). Webpage [here](https://ct.skia.org/lua_script/).
<a name="framework_usage"></a>
@ -60,27 +59,27 @@ The framework has also been used to run multiple lua scripts to scrape the SKP r
chars-vs-glyphs, bitmap transform types, gradient color counter, 3 color gradient checks, etc.
This has been very useful for the Skia team to help determine which parts of the library to optimize and focus on.
All runs are recorded [here](http://skia-tree-status.appspot.com/skia-telemetry/all_tasks).
All runs are recorded [here](https://ct.skia.org/history/).
<a name="system_architecture"></a>
System Architecture
------------------
-------------------
<a name="system_diagram"></a>
### System Diagram
![CT System Diagram](ct-system.png)
![CT System Diagram](ct-system-diagram.svg)
<a name="detailed_explanation"></a>
### Detailed explanation of steps
1. User submits an Admin task (rebuild chrome, recreate pagesets, recreate webpage archives), Lua script task, or Telemetry benchmark task using the App Engine web application [here](http://ct.skia.org).
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 GCE web application [here](http://ct.skia.org).
2. Each task is exposed by the web application in JSON. The CT master polls the web application and picks up new tasks.
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/) (in a new process so that the poller is not blocked). The master scripts then check to see when the workers are done with the requested task.
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 master scripts then check to see when the workers are done with the requested task.
4. The workers execute the task using the worker scripts [here](https://skia.googlesource.com/buildbot/+/master/ct/go/worker_scripts/). All generated artifacts (CSV files, logs, SKP files, archives, etc) are then stored locally and copied to Google Storage.
@ -93,7 +92,7 @@ System Architecture
Code
----
Cluster Telemetry is primarily written in Go with a few python scripts. The framework lives in [master/ct](https://skia.googlesource.com/buildbot/+/master/ct) and the appengine code lives in [master/appengine_scripts](https://skia.googlesource.com/buildbot/+/master/appengine_scripts/skia-tree-status).
Cluster Telemetry is primarily written in Go with a few python scripts. The framework lives in [master/ct](https://skia.googlesource.com/buildbot/+/master/ct).
<a name="contact_us"></a>
Contact Us