class_docstr: This is run on Buildkite runners.
class_docstr_tok: ["This","is","run","on","Buildkite","runners","."]
docstr: Obtains Prometheus metrics from head node and saves them
  to ``self.metrics_output_json``.
  
  Args:
      start_time: From which UNIX timestamp to start the query.
      timeout: Timeout in seconds.
  
  Returns:
      None
docstr_tok: ["Obtains","Prometheus","metrics","from","head","node","and","saves","them","to","``","self.metrics_output_json","``",".","Args",":","start_time",":","From","which","UNIX","timestamp","to","start","the","query",".","timeout",":","Timeout","in","seconds",".","Returns",":","None"]
code: def save_metrics(self, start_time: float, timeout: float = 900.0):
      """Obtains Prometheus metrics from head node and saves them
      to ``self.metrics_output_json``.
  
      Args:
          start_time: From which UNIX timestamp to start the query.
          timeout: Timeout in seconds.
  
      Returns:
          None
      """
      raise NotImplementedError
  
imports: import abc
  from typing import Dict, Any, Optional, List
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.file_manager.file_manager import FileManager
  from ray_release.reporter.artifacts import DEFAULT_ARTIFACTS_DIR
  from ray_release.util import exponential_backoff_retry
  from ray_release.logger import logger
  from click.exceptions import ClickException
label_desc: Use image node_id 7 for calling the CommandRunner obj's underlying member method code with example usage: obj.save_metrics(start_time, timeout) without return types