def generate_tensorplex_report(self):
        """
            Adds core and system level tensorplex stats
        """
        cur_time = time.time()
        current_iter = self.current_iter

        iter_elapsed = current_iter - self.last_iter
        self.last_iter = current_iter

        time_elapsed = cur_time - self.last_time
        self.last_time = cur_time

        core_metrics = {}
        system_metrics = {}

        learn_time = self.learn_timer.avg + 1e-6
        fetch_timer = self._prefetch_queue.timer
        fetch_time = fetch_timer.avg + 1e-6
        iter_time = self.iter_timer.avg + 1e-6
        publish_time = self.publish_timer.avg + 1e-6
        # Time it takes to learn from a batch
        core_metrics['learn_time_s'] = learn_time
        # Time it takes to fetch a batch
        core_metrics['fetch_time_s'] = fetch_time
        # Time it takes to publish parameters
        core_metrics['publish_time_s'] = publish_time
        # Time it takes to complete one full iteration
        core_metrics['iter_time_s'] = iter_time

        iter_per_s = iter_elapsed / time_elapsed
        # Number of iterations per second
        system_metrics['iter_per_s'] = iter_per_s
        # Number of experience bathces processed per second
        system_metrics['exp_per_s'] = iter_per_s * \
            self.learner_config.replay.batch_size
        # Percent of time spent on learning
        system_metrics['compute_load_percent'] = min(
            learn_time / iter_time * 100, 100)
        # Percent of time spent on IO
        system_metrics['io_fetch_experience_load_percent'] = min(
            fetch_time / iter_time * 100, 100)
        # Percent of time spent on publishing
        system_metrics['io_publish_load_percent'] = min(
            publish_time / iter_time * 100, 100)

        all_metrics = {}
        for k in core_metrics:
            all_metrics['.core/' + k] = core_metrics[k]
        for k in system_metrics:
            all_metrics['.system/' + k] = system_metrics[k]

        # These are system metrics,
        # they don't add to counter or trigger updates
        self.tensorplex.add_scalars(all_metrics)

            Adds core and system level tensorplex stats
        
surreal/learner/base.py