Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: tools/android/loading/cloud/backend/README.md

Issue 1895033002: tools/android/loading Switch the GCE worker to pull queues (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@appengine
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/android/loading/cloud/backend/deploy.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Clovis in the Cloud: Developer Guide 1 # Clovis in the Cloud: Developer Guide
2 2
3 This document describes how to collect Chromium traces using Google Compute 3 This document describes how to collect Chromium traces using Google Compute
4 Engine. 4 Engine.
5 5
6 [TOC] 6 [TOC]
7 7
8 ## Initial setup 8 ## Initial setup
9 9
10 Install the [gcloud command line tool][1]. 10 Install the [gcloud command line tool][1].
11 11
12 ## Deploy the code 12 ## Deploy the code
13 13
14 ```shell 14 ```shell
15 # Build Chrome (do not use the component build). 15 # Build Chrome (do not use the component build).
16 BUILD_DIR=out/Release 16 BUILD_DIR=out/Release
17 ninja -C $BUILD_DIR -j1000 -l60 chrome chrome_sandbox 17 ninja -C $BUILD_DIR -j1000 -l60 chrome chrome_sandbox
18 18
19 # Deploy to GCE 19 # Deploy to GCE
20 # CLOUD_STORAGE_PATH is the path in Google Cloud Storage under which the 20 # CLOUD_STORAGE_PATH is the path in Google Cloud Storage under which the
21 # Clovis deployment will be uploaded. 21 # Clovis deployment will be uploaded.
22 22
23 ./tools/android/loading/gce/deploy.sh $BUILD_DIR $CLOUD_STORAGE_PATH 23 ./tools/android/loading/cloud/backend/deploy.sh $BUILD_DIR $CLOUD_STORAGE_PATH
24 ``` 24 ```
25 25
26 ## Start the app in the cloud 26 ## Start the app in the cloud
27 27
28 Create an instance using latest ubuntu LTS: 28 Create an instance using latest ubuntu LTS:
29 29
30 ```shell 30 ```shell
31 gcloud compute instances create clovis-tracer-1 \ 31 gcloud compute instances create clovis-tracer-1 \
32 --machine-type n1-standard-1 \ 32 --machine-type n1-standard-1 \
33 --image ubuntu-14-04 \ 33 --image ubuntu-14-04 \
34 --zone europe-west1-c \ 34 --zone europe-west1-c \
35 --scopes cloud-platform \ 35 --scopes cloud-platform,https://www.googleapis.com/auth/cloud-taskqueue \
36 --metadata cloud-storage-path=$CLOUD_STORAGE_PATH,auto-start=true \ 36 --metadata cloud-storage-path=$CLOUD_STORAGE_PATH,taskqueue_tag=some_tag \
37 --metadata-from-file \ 37 --metadata-from-file \
38 startup-script=$CHROMIUM_SRC/tools/android/loading/gce/startup-script.sh 38 startup-script=$CHROMIUM_SRC/tools/android/loading/cloud/backend/startup-sc ript.sh
39 ``` 39 ```
40 40
41 **Note:** To start an instance without automatically starting the app on it, 41 **Note:** To start an instance without automatically starting the app on it,
42 remove the `--metadata auto-start=true` argument. This can be useful when doing 42 add a `auto-start=false` metadata. This can be useful when doing iterative
43 iterative development on the instance, to be able to restart the app manually. 43 development on the instance, to be able to restart the app manually.
44 44
45 This should output the IP address of the instance. 45 This should output the IP address of the instance.
46 Otherwise the IP address can be retrieved by doing: 46 Otherwise the IP address can be retrieved by doing:
47 47
48 ```shell 48 ```shell
49 gcloud compute instances list 49 gcloud compute instances list
50 ``` 50 ```
51 51
52 **Note:** It can take a few minutes for the instance to start. You can follow 52 **Note:** It can take a few minutes for the instance to start. You can follow
53 the progress of the startup script on the gcloud console web interface (menu 53 the progress of the startup script on the gcloud console web interface (menu
54 "Compute Engine" > "VM instances" then click on your instance and scroll down to 54 "Compute Engine" > "VM instances" then click on your instance and scroll down to
55 see the "Serial console output") or from the command line using: 55 see the "Serial console output") or from the command line using:
56 56
57 ```shell 57 ```shell
58 gcloud compute instances get-serial-port-output clovis-tracer-1 58 gcloud compute instances get-serial-port-output clovis-tracer-1
59 ``` 59 ```
60 60
61 ## Use the app 61 ## Use the app
62 62
63 Check that `http://<instance-ip>:8080/test` prints `hello` when opened in a 63 Create tasks from the associated AppEngine application, see [documentation][3].
64 browser. 64 Make sure the `taskqueue_tag` of the AppEngine request matches the one of the
65 65 ComputeEngine instances.
66 To send a list of URLs to process:
67
68 ```shell
69 curl -X POST -d @urls.json http://<instance-ip>:8080/set_tasks
70 ```
71
72 where `urls.json` is a JSON dictionary with the keys:
73
74 * `urls`: array of URLs
75 * `repeat_count`: Number of times each URL will be loaded. Each load of a URL
76 generates a separate trace file. Optional.
77 * `emulate_device`: Name of the device to emulate. Optional.
78 * `emulate_network`: Type of network emulation. Optional.
79
80 You can follow the progress at `http://<instance-ip>:8080/status`.
81 66
82 ## Stop the app in the cloud 67 ## Stop the app in the cloud
83 68
84 ```shell 69 ```shell
85 gcloud compute instances delete clovis-tracer-1 70 gcloud compute instances delete clovis-tracer-1
86 ``` 71 ```
87 72
88 ## Connect to the instance with SSH 73 ## Connect to the instance with SSH
89 74
90 ```shell 75 ```shell
91 gcloud compute ssh clovis-tracer-1 76 gcloud compute ssh clovis-tracer-1
92 ``` 77 ```
93 78
94 ## Use the app locally 79 ## Use the app locally
95 80
96 From a new directory, set up a local environment: 81 From a new directory, set up a local environment:
97 82
98 ```shell 83 ```shell
99 virtualenv env 84 virtualenv env
100 source env/bin/activate 85 source env/bin/activate
101 pip install -r $CHROMIUM_SRC/tools/android/loading/gce/pip_requirements.txt 86 pip install -r \
87 $CHROMIUM_SRC/tools/android/loading/cloud/backend/pip_requirements.txt
88 ```
89
90 The first time, you may need to get more access tokens:
91
92 ```shell
93 gcloud beta auth application-default login --scopes \
94 https://www.googleapis.com/auth/cloud-taskqueue \
95 https://www.googleapis.com/auth/cloud-platform
102 ``` 96 ```
103 97
104 Create a JSON file describing the deployment configuration: 98 Create a JSON file describing the deployment configuration:
105 99
106 ```shell 100 ```shell
107 # CONFIG_FILE is the output json file. 101 # CONFIG_FILE is the output json file.
108 # PROJECT_NAME is the Google Cloud project. 102 # PROJECT_NAME is the Google Cloud project.
109 # CLOUD_STORAGE_PATH is the path in Google Storage where generated traces will 103 # CLOUD_STORAGE_PATH is the path in Google Storage where generated traces will
110 # be stored. 104 # be stored.
111 # CHROME_PATH is the path to the Chrome executable on the host. 105 # CHROME_PATH is the path to the Chrome executable on the host.
112 # CHROMIUM_SRC is the Chromium src directory. 106 # CHROMIUM_SRC is the Chromium src directory.
113 cat >$CONFIG_FILE << EOF 107 cat >$CONFIG_FILE << EOF
114 { 108 {
115 "project_name" : "$PROJECT_NAME", 109 "project_name" : "$PROJECT_NAME",
116 "cloud_storage_path" : "$CLOUD_STORAGE_PATH", 110 "cloud_storage_path" : "$CLOUD_STORAGE_PATH",
117 "chrome_path" : "$CHROME_PATH", 111 "chrome_path" : "$CHROME_PATH",
118 "src_path" : "$CHROMIUM_SRC" 112 "src_path" : "$CHROMIUM_SRC",
113 "taskqueue_tag" : "some_tag"
119 } 114 }
120 EOF 115 EOF
121 ``` 116 ```
122 117
123 Launch the app, passing the path to the deployment configuration file: 118 Launch the app, passing the path to the deployment configuration file:
124 119
125 ```shell 120 ```shell
126 gunicorn --workers=1 --bind 127.0.0.1:8080 \ 121 python $CHROMIUM_SRC/tools/android/loading/cloud/backend/worker.py \
127 --pythonpath $CHROMIUM_SRC/tools/android/loading/gce \ 122 --config $CONFIG_FILE
128 'main:StartApp('\"$CONFIG_FILE\"')'
129 ``` 123 ```
130 124
131 You can now [use the app][2], which is located at http://localhost:8080. 125 You can now [use the app][2].
132 126
133 Tear down the local environment: 127 Tear down the local environment:
134 128
135 ```shell 129 ```shell
136 deactivate 130 deactivate
137 ``` 131 ```
138 132
139 [1]: https://cloud.google.com/sdk 133 [1]: https://cloud.google.com/sdk
140 [2]: #Use-the-app 134 [2]: #Use-the-app
135 [3]: ../frontend/README.md
OLDNEW
« no previous file with comments | « no previous file | tools/android/loading/cloud/backend/deploy.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698