'Record a value at a known time.
Arguments:
value (double): The value we are recording
time_ms (int): A POSIX timestamp in milliseconds.
Default: The time when record() is evaluated (now)
Raises:
QuotaViolationException: if recording this value moves a
metric beyond its configured maximum or minimum bound'

def record(self, value=1.0, time_ms=None):

    if (time_ms is None):
        time_ms = (time.time() * 1000)
    self._last_record_time = time_ms
    with self._lock:
        for stat in self._stats:
            stat.record(self._config, value, time_ms)
        self._check_quotas(time_ms)
    for parent in self._parents:
        parent.record(value, time_ms)
