Refactor EpochMetric and make it idempotent
#2800
+65
−110
Merged