update metrics incrementally