class_docstr: The Slurm Evaluator is a class designed to continuously monitor VISSL pretrainings
  and launch evaluations as checkpoints become available. The method takes a
  config dictionary consisting of the training checkpoint directory, an array of
  benchmarks, and information on how often to evaluate the trainings.
code: def _get_benchmark_metrics(self, benchmark):
      metrics_file = os.path.join(
          benchmark["slurm_checkpoint_dir"], "metrics.json"
      )
  
      if g_pathmgr.exists(metrics_file):
          # Open metrics file from finished evaluation job.
          metrics = []
          with g_pathmgr.open(metrics_file, "rb") as f:
              for line in f:
                  metrics.append(json.loads(line))
  
          final_metrics = collections.defaultdict(
              lambda: {"metric": -1}
          )
  
          self._set_largest_metric(metrics, final_metrics)
  
          result = dict(final_metrics)
      else:
          result = """Evaluation Job has completed, but metrics.json is not available.
                          Please check the evaluation's checkpoint_dir."""
  
      return result
  
imports: import collections
  import json
  import logging
  import os
  import time
  from datetime import datetime
  from pathlib import Path
  from typing import List
  import submitit
  from iopath.common.file_io import g_pathmgr
  from vissl.config.attr_dict import AttrDict
  from vissl.utils.distributed_launcher import launch_distributed_on_slurm
  from vissl.utils.hydra_config import compose_hydra_configuration, convert_to_attrdict
  from vissl.utils.io import load_file, makedir
  from vissl.utils.misc import flatten_dict, retry
label_desc: Use image node_id 18 for calling the BenchmarkSuiteScheduler obj's underlying member method code with example usage: obj._get_benchmark_metrics(benchmark) and returns: result