Splitting out metrics, relays and logging for better separation of
concern and testing.