@@ -109,6 +109,87 @@ python3 experiment_run_e2e.py \
109109The default run takes about three minutes and tears down the services when
110110it finishes. Use ` flow.no_teardown=true ` only when debugging service state.
111111
112+ ## Run a Google Cluster-Data Experiment
113+
114+ The Google trace is already split into compressed ` task_usage ` parts, so no
115+ preprocessing is required. The benchmark data is under:
116+
117+ ``` text
118+ ../../benchmarks/metrics_observability/data/google-cluster-data/ClusterData2011/clusterdata-2011-2/task_usage
119+ ```
120+
121+ The checked-in Google configuration uses ` part_index: 0 ` , which is useful for
122+ a one-node experiment. The first part is approximately 92 MB compressed and
123+ 381 MB uncompressed. Copy it to node19:
124+
125+ ``` bash
126+ GOOGLE_DATA=" $PWD /../../benchmarks/metrics_observability/data/google-cluster-data/ClusterData2011/clusterdata-2011-2/task_usage"
127+ CDE_HOST=" node19.scratch2.cloudmigration-PG0.utah.cloudlab.us"
128+
129+ ssh -o StrictHostKeyChecking=no " milindsr@$CDE_HOST " \
130+ ' mkdir -p /scratch/sketch_db_for_prometheus/cluster_traces'
131+
132+ rsync -ah --info=progress2 -e ' ssh -o StrictHostKeyChecking=no' \
133+ " $GOOGLE_DATA /part-00000-of-00500.csv.gz" \
134+ " milindsr@$CDE_HOST :/scratch/sketch_db_for_prometheus/cluster_traces/"
135+ ```
136+
137+ Build the same exporter image used for Alibaba if it is not already present:
138+
139+ ``` bash
140+ ssh -o StrictHostKeyChecking=no " milindsr@$CDE_HOST " \
141+ ' cd /scratch/sketch_db_for_prometheus/code/asap-tools/data-sources/prometheus-exporters/cluster_data_exporter &&
142+ bash installation/install.sh'
143+ ```
144+
145+ Run the Google experiment from ` asap-tools/experiments ` :
146+
147+ ``` bash
148+ python3 experiment_run_e2e.py \
149+ experiment.name=google_cluster_data_offset18 \
150+ experiment_type=cluster_data_google \
151+ providers.cloudlab.username=milindsr \
152+ providers.cloudlab.hostname_suffix=scratch2.cloudmigration-PG0.utah.cloudlab.us \
153+ providers.cloudlab.node_offset=18 \
154+ providers.cloudlab.num_nodes=1 \
155+ cluster_data_directory=/scratch/sketch_db_for_prometheus/cluster_traces
156+ ```
157+
158+ This configuration runs both ` sketchdb ` and ` baseline ` modes. Google
159+ ` task_usage ` produces a much larger ` /metrics ` response than the Alibaba
160+ Node trace, so the Google config sets the cluster-data scrape interval to
161+ 60 seconds and timeout to 30 seconds. The Prometheus config generator honors
162+ these optional exporter settings; Alibaba retains its 10-second default.
163+
164+ The default query is:
165+
166+ ``` promql
167+ quantile by () (0.5, google_mean_cpu_usage_rate_0)
168+ ```
169+
170+ For Google data, the exporter labels are ` job_id ` , ` task_index ` , and
171+ ` machine_id ` (along with the scrape-added ` instance ` and ` job ` labels). To
172+ change the aggregate column, use the corresponding metric name and update
173+ the ` metrics ` entry in
174+ ` asap-tools/experiments/config/experiment_type/cluster_data_google.yaml ` .
175+ For example, ` canonical-memory-usage ` becomes
176+ ` google_canonical_memory_usage_0 ` . To group the result by a data label, change
177+ ` by () ` to e.g. ` by (machine_id) ` and include that label in the ` metrics `
178+ entry's label list.
179+
180+ Because Google has separate baseline and sketchdb modes, the latency wrapper
181+ can be used after the run:
182+
183+ ``` bash
184+ cd /home/milind/Desktop/cmu/research/sketch_db_for_prometheus/code/ASAPQuery/asap-tools/experiments/post_experiment
185+ PYTHONPATH=/home/milind/Desktop/cmu/research/sketch_db_for_prometheus/code/ASAPQuery/asap-common/dependencies/py/promql_utilities \
186+ ./run_compare_latencies.sh google_cluster_data_offset18
187+
188+ python3 analyze_monitor_output.py \
189+ /home/milind/Desktop/cmu/research/sketch_db_for_prometheus/code/ASAPQuery/experiment_outputs/google_cluster_data_offset18/sketchdb/remote_monitor_output/monitor_output.json \
190+ --print
191+ ```
192+
112193## Change the query's aggregation column or grouping label
113194
114195The raw 2021 Node CSV has columns like:
0 commit comments