change metrics record's method and feild to be more general.
add recordable test case.