Do we need to add the other 3 items here as well for consistency? ie. commands, resources, facts?

Something isn't correct here ... for 'metrics' in particular querying for type=/v2/metrics doesn't give me an incrementing counter. Only querying for v2=metrics does. The /v2/metrics version does however show 404's and the like. Take a look at this output:

<pre>
  "com.puppetlabs.puppetdb.http.server:type=/v2/metrics,name=404" : "/metrics/mbean/com.puppetlabs.puppetdb.http.server%3Atype%3D%2Fv2%2Fmetrics%2Cname%3D404",
  "com.puppetlabs.puppetdb.http.server:type=/v2/metrics,name=service-time" : "/metrics/mbean/com.puppetlabs.puppetdb.http.server%3Atype%3D%2Fv2%2Fmetrics%2Cname%3Dservice-time",
  "com.puppetlabs.puppetdb.http.server:type=metrics,name=200" : "/metrics/mbean/com.puppetlabs.puppetdb.http.server%3Atype%3Dmetrics%2Cname%3D200",
  "com.puppetlabs.puppetdb.http.server:type=metrics,name=404" : "/metrics/mbean/com.puppetlabs.puppetdb.http.server%3Atype%3Dmetrics%2Cname%3D404",
  "com.puppetlabs.puppetdb.http.server:type=metrics,name=service-time" : "/metrics/mbean/com.puppetlabs.puppetdb.http.server%3Atype%3Dmetrics%2Cname%3Dservice-time",
</pre>

So by providing this mechanism, your renaming where the metrics go. Its almost as if we don't want to rename it, but duplicate it in 2 places perhaps?

I'm starting to question if we really want the older behaviour at all, it does complicate matters. But if we want to keep it for backwards compatibility we probably need to solve this, since users will expect to be able to query both places and get the same results - right now I don't get that for 'metrics' as mentioned - and since none of the other items are listed/replaced here they work fine, but can't be seen when you do a general /v2/metrics/mbeans list query. Let me know if I'm not making sense.