Fix non-float duration division

We were dividing metric values by the passed duration value, which is not
enforced to be a float, so was causing integer rounding on the metric values.
Python 3 behaves differently to Python 2 here, apparently.