@@ -174,13 +174,7 @@ def _process_id_list(self):
174174 ids = self .get_vm_id_list ()
175175
176176 if ids :
177- with open (
178- self .expander .expand_var (
179- "{experiment_run_dir}/gcp-metadata.id_list.log"
180- ),
181- "w+" ,
182- ) as f :
183- f .write (", " .join (sorted (ids )))
177+ self .add_inmem_fom_value ("gcp_metadata_id_list" , ", " .join (ids ))
184178
185179 def _process_id_map (self ):
186180 if self ._usage_mode == "local" :
@@ -196,13 +190,7 @@ def _process_id_map(self):
196190 if ":" not in content :
197191 return
198192 content = content .strip ().replace ("\n " , ", " )
199- with open (
200- self .expander .expand_var (
201- "{experiment_run_dir}/gcp-metadata.id_map.log"
202- ),
203- "w+" ,
204- ) as f :
205- f .write (content )
193+ self .add_inmem_fom_value ("gcp_metadata_id_map" , content )
206194
207195 def _process_physical_hosts (self , workspace ):
208196 run_dir = self .expander .expand_var ("{experiment_run_dir}" )
@@ -232,17 +220,19 @@ def _process_physical_hosts(self, workspace):
232220 level0_groups .add (levels [0 ])
233221 level1_groups .add (levels [1 ])
234222 level2_groups .add (levels [2 ])
235-
236- with open (
237- os .path .join (run_dir , "gcp-metadata.topology_summary.log" ),
238- "w+" ,
239- ) as f :
240- if len (level0_groups ) > 0 :
241- # The group level name comes from https://cloud.google.com/compute/docs/instances/use-compact-placement-policies#verify-vm-location.
242- f .write (f"Level 0 groups (cluster) = { len (level0_groups )} \n " )
243- f .write (f"Level 1 groups (rack) = { len (level1_groups )} \n " )
244- f .write (f"Level 2 groups (host) = { len (level2_groups )} \n " )
245- f .write (f'All hosts = { "," .join (all_hosts )} \n ' )
223+ if level0_groups :
224+ self .add_inmem_fom_value (
225+ "gcp_metadata_level_0" , len (level0_groups )
226+ )
227+ self .add_inmem_fom_value (
228+ "gcp_metadata_level_1" , len (level1_groups )
229+ )
230+ self .add_inmem_fom_value (
231+ "gcp_metadata_level_2" , len (level2_groups )
232+ )
233+ self .add_inmem_fom_value (
234+ "gcp_metadata_all_hosts" , "," .join (all_hosts )
235+ )
246236
247237 def _prepare_analysis (self , workspace ):
248238 self ._process_id_list ()
@@ -283,17 +273,13 @@ def _prepare_analysis(self, workspace):
283273 # This returns a list of all known gids in the job
284274 figure_of_merit (
285275 "gids" ,
286- fom_regex = r"(?P<gid>.*)" ,
287- group_name = "gid" ,
288- log_file = "{experiment_run_dir}/gcp-metadata.id_list.log" ,
276+ fom_map_key = "gcp_metadata_id_list" ,
289277 fom_type = FomType .INFO ,
290278 )
291279
292280 figure_of_merit (
293281 "hostname-to-gid-map" ,
294- fom_regex = r"(?P<map>.*)" ,
295- group_name = "map" ,
296- log_file = "{experiment_run_dir}/gcp-metadata.id_map.log" ,
282+ fom_map_key = "gcp_metadata_id_map" ,
297283 fom_type = FomType .INFO ,
298284 )
299285
@@ -305,18 +291,22 @@ def _prepare_analysis(self, workspace):
305291 fom_type = FomType .INFO ,
306292 )
307293
308- figure_of_merit (
309- "Level {level_num} Groups ({level_name})" ,
310- fom_regex = r"Level (?P<level_num>[0-9]) groups \((?P<level_name>[\w]+)\) = (?P<num_groups>[0-9]+)" ,
311- log_file = "{experiment_run_dir}/gcp-metadata.topology_summary.log" ,
312- group_name = "num_groups" ,
313- units = "" ,
314- )
294+ for lv_num , lv_name in [
295+ # The group level name comes from https://cloud.google.com/compute/docs/instances/use-compact-placement-policies#verify-vm-location.
296+ (0 , "cluster" ),
297+ (1 , "rack" ),
298+ (2 , "host" ),
299+ ]:
300+ figure_of_merit (
301+ f"Level { lv_num } Groups ({ lv_name } )" ,
302+ fom_map_key = f"gcp_metadata_level_{ lv_num } " ,
303+ fom_type = FomType .INFO ,
304+ units = "" ,
305+ )
315306
316307 figure_of_merit (
317308 "All Hosts" ,
318- fom_regex = "All hosts = (?P<hostlist>.*)" ,
319- log_file = "{experiment_run_dir}/gcp-metadata.topology_summary.log" ,
320- group_name = "hostlist" ,
309+ fom_map_key = "gcp_metadata_all_hosts" ,
310+ fom_type = FomType .INFO ,
321311 units = "" ,
322312 )
0 commit comments