class_docstr: Client for a remote tracking server accessed via REST API calls
  
  :param get_host_creds: Method to be invoked prior to every REST request to get the
    :py:class:`mlflow.rest_utils.MlflowHostCreds` for the request. Note that this
    is a function so that we can obtain fresh credentials in the case of expiry.
class_docstr_tok: ["Client","for","a","remote","tracking","server","accessed","via","REST","API","calls",":","param","get_host_creds",":","Method","to","be","invoked","prior","to","every","REST","request","to","get","the",":","py",":","class",":","`","mlflow.rest_utils.MlflowHostCreds","`","for","the","request",".","Note","that","this","is","a","function","so","that","we","can","obtain","fresh","credentials","in","the","case","of","expiry","."]
docstr: Return all logged values for a given metric.
  
  :param run_id: Unique identifier for run
  :param metric_key: Metric name within the run
  :param max_results: Maximum number of metric history events (steps) to return per paged
      query. Only supported in 'databricks' backend.
  :param page_token: A Token specifying the next paginated set of results of metric history.
  
  :return: A PagedList of :py:class:`mlflow.entities.Metric` entities if a paginated request
      is made by setting ``max_results`` to a value other than ``None``, a List of
      :py:class:`mlflow.entities.Metric` entities if ``max_results`` is None, else, if no
      metrics of the ``metric_key`` have been logged to the ``run_id``, an empty list.
docstr_tok: ["Return","all","logged","values","for","a","given","metric",".",":","param","run_id",":","Unique","identifier","for","run",":","param","metric_key",":","Metric","name","within","the","run",":","param","max_results",":","Maximum","number","of","metric","history","events","(","steps",")","to","return","per","paged","query",".","Only","supported","in","'databricks","'","backend",".",":","param","page_token",":","A","Token","specifying","the","next","paginated","set","of","results","of","metric","history",".",":","return",":","A","PagedList","of",":","py",":","class",":","`","mlflow.entities.Metric","`","entities","if","a","paginated","request","is","made","by","setting","``","max_results","``","to","a","value","other","than","``","None","``",",","a","List","of",":","py",":","class",":","`","mlflow.entities.Metric","`","entities","if","``","max_results","``","is","None",",","else",",","if","no","metrics","of","the","``","metric_key","``","have","been","logged","to","the","``","run_id","``",",","an","empty","list","."]
code: def get_metric_history(
      self, run_id, metric_key, max_results=None, page_token=None
  ):
      """
      Return all logged values for a given metric.
  
      :param run_id: Unique identifier for run
      :param metric_key: Metric name within the run
      :param max_results: Maximum number of metric history events (steps) to return per paged
          query. Only supported in 'databricks' backend.
      :param page_token: A Token specifying the next paginated set of results of metric history.
  
      :return: A PagedList of :py:class:`mlflow.entities.Metric` entities if a paginated request
          is made by setting ``max_results`` to a value other than ``None``, a List of
          :py:class:`mlflow.entities.Metric` entities if ``max_results`` is None, else, if no
          metrics of the ``metric_key`` have been logged to the ``run_id``, an empty list.
      """
      req_body = message_to_json(
          GetMetricHistory(
              run_uuid=run_id,
              run_id=run_id,
              metric_key=metric_key,
              max_results=max_results,
              page_token=page_token,
          )
      )
      response_proto = self._call_endpoint(GetMetricHistory, req_body)
  
      metric_history = [
          Metric.from_proto(metric) for metric in response_proto.metrics
      ]
      return PagedList(
          metric_history, response_proto.next_page_token or None
      )
  
imports: from typing import List, Optional
  from mlflow.entities import DatasetInput, Experiment, Metric, Run, RunInfo, ViewType
  from mlflow.exceptions import MlflowException
  from mlflow.protos import databricks_pb2
  from mlflow.protos.service_pb2 import CreateExperiment, CreateRun, DeleteExperiment, DeleteRun, DeleteTag, GetExperiment, GetExperimentByName, GetMetricHistory, GetRun, LogBatch, LogInputs, LogMetric, LogModel, LogParam, MlflowService, RestoreExperiment, RestoreRun, SearchExperiments, SearchRuns, SetExperimentTag, SetTag, UpdateExperiment, UpdateRun
  from mlflow.store.entities.paged_list import PagedList
  from mlflow.store.tracking.abstract_store import AbstractStore
  from mlflow.utils.proto_json_utils import message_to_json
  from mlflow.utils.rest_utils import _REST_API_PATH_PREFIX, call_endpoint, extract_api_info_for_service
label_desc: Use image node_id 17 for calling the RestStore obj's underlying member method code with example usage: obj.get_metric_history(run_id, metric_key, max_results, page_token) and returns: PagedList