With schema information you mean "meter", "timer", ...? That seems pretty verbose to me. ("foo.bar.baz.meter.one_minute_rate") If a reporter wants to get rid of that it has to do some string wrangling.

Another option is to pass the metric class to the block.

```ruby
block.call("#{name}.one_minute_rate", metric.one_minute_rate, metric.class)
```

That way the reporter can just ignore the class name but can access it if it needs to take a decision based on the metric type.

And then one could ask: why compute the name string in the first place?

```ruby
block.call(name, "one_minute_rate", metric.one_minute_rate, metric.class)
```
Which makes the reporter to do more work again.

I like the simplicity of the current enumeration approach.