return a more descriptive error

The metric name is not externally accessible, given only
the metric itself. If the user wants to report errors
(for example, in a log message) describing which metric
was associated with an error, they will have to do some
bookkeeping to map metric objects to names. This change
frees the user from doing that bookkeeping.