Where does Recorder.metrics get set?

In def before_fit(self): it uses names = self.metrics.attrgot('name')

But I can’t see where self.metrics is ever set, as I don’t see it as being passed as a parameter below:

class Recorder(Callback):
    "Callback that registers statistics (lr, loss and metrics) during training"
    _stateattrs=('lrs','iters','losses','values')
    remove_on_fetch,order = True,50

    def __init__(self, add_time=True, train_metrics=False, valid_metrics=True, beta=0.98):
        store_attr('add_time,train_metrics,valid_metrics')
        self.loss,self.smooth_loss = AvgLoss(),AvgSmoothLoss(beta=beta)

    def before_fit(self):
        "Prepare state for training"
        self.lrs,self.iters,self.losses,self.values = [],[],[],[]
        names = self.metrics.attrgot('name')
....

@bgraysea how can we print the value of best metrci at each fold. if i run .fit in loop