Sounds like a good approach. A few questions:
  - Did you mean to have a `value=None` in the `oneshot` definition example? (just to be sure I'm understanding this)
  - In order to have `GoMetric` implement `oneshot`, it would need to handle cases where `get_value()` returns a deferred. For django metrics, that wouldn't make sense, so `DjangoMetric` and `TxMetric` would need to have their own `oneshot`s. That okay?