Definitely agree with you. I see a couple of ways forward:
1) I could redefine an interface in raft like was done for the server struct
2) Pass in callbacks that keep all metrics-collecting code out of raft

What do you think?