def set(self, name, fields, target_fields, value, enforce_ge=False): with self._thread_lock: if enforce_ge: old_value = self._entry(name).get_value(fields, target_fields, 0) if value < old_value: raise errors.MonitoringDecreasingValueError(name, old_value, value) self._entry(name).set_value(fields, target_fields, value)
def incr(self, name, fields, target_fields, delta, modify_fn=None): if delta < 0: raise errors.MonitoringDecreasingValueError(name, None, delta) if modify_fn is None: modify_fn = default_modify_fn(name) with self._thread_lock: self._entry(name).set_value(fields, target_fields, modify_fn( self.get(name, fields, target_fields, 0), delta))
def _modify_fn(value, delta): if delta < 0: raise errors.MonitoringDecreasingValueError(name, None, delta) return value + delta