docstr: Get replay stats from the replay actor shard 0.
  
  The first healthy replay actor is picked to fetch stats from.
  TODO(jungong) : figure out why not collecting data from all
  replay actors?
  
  Returns:
      A dictionary of replay stats.
docstr_tok: ["Get","replay","stats","from","the","replay","actor","shard","0",".","The","first","healthy","replay","actor","is","picked","to","fetch","stats","from",".","TODO","(","jungong",")",":","figure","out","why","not","collecting","data","from","all","replay","actors","?","Returns",":","A","dictionary","of","replay","stats","."]
code: def _get_shard0_replay_stats(self) -> Dict[str, Any]:
      """Get replay stats from the replay actor shard 0.
  
      The first healthy replay actor is picked to fetch stats from.
      TODO(jungong) : figure out why not collecting data from all
      replay actors?
  
      Returns:
          A dictionary of replay stats.
      """
      healthy_actor_ids = self._replay_actor_manager.healthy_actor_ids()
      if not healthy_actor_ids:
          return {}
  
      healthy_actor_id = healthy_actor_ids[0]
      debug = self.config.optimizer.get("debug")
      results = list(
          self._replay_actor_manager.foreach_actor(
              func=lambda actor: actor.stats(debug),
              remote_actor_ids=[healthy_actor_id],
          )
      )
      if not results:
          return {}
      if not results[0].ok:
          raise results[0].get()
      return results[0].get()
  
imports: import copy
  import platform
  import random
  from collections import defaultdict
  from typing import Any, Dict, List, Optional, Tuple, Union
  import ray
  from ray._private.dict import merge_dicts
  from ray.actor import ActorHandle
  from ray.rllib.algorithms import Algorithm
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.dqn.dqn import DQN, DQNConfig
  from ray.rllib.algorithms.dqn.learner_thread import LearnerThread
  from ray.rllib.evaluation.rollout_worker import RolloutWorker
  from ray.rllib.evaluation.worker_set import handle_remote_call_result_errors
  from ray.rllib.utils.actor_manager import FaultTolerantActorManager
  from ray.rllib.utils.actors import create_colocated_actors
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE
  from ray.rllib.utils.metrics import LAST_TARGET_UPDATE_TS, NUM_AGENT_STEPS_SAMPLED, NUM_AGENT_STEPS_TRAINED, NUM_ENV_STEPS_SAMPLED, NUM_ENV_STEPS_TRAINED, NUM_TARGET_UPDATES, SAMPLE_TIMER, SYNCH_WORKER_WEIGHTS_TIMER, TARGET_NET_UPDATE_TIMER
  from ray.rllib.utils.typing import PartialAlgorithmConfigDict, ResultDict, SampleBatchType
  from ray.tune.execution.placement_groups import PlacementGroupFactory
  from ray.tune.trainable import Trainable
label_desc: Use image node_id 10 for calling the ApexDQN obj's underlying member method code with example usage: obj._get_shard0_replay_stats() and returns: results, dict, dict