Basically yes. There are a few exceptions to statelessness, but those cases require a `MetricFactory` implementation to provide multiple instances. We should have an annotation to allow a metric class to specify its factory class if it is not stateless.

I can write a comment explicitly laying out the lifecycle.