Library documentation [0] says this about monotonic():
The reference point of the returned value is undefined,
so that only the difference between the results of two calls is valid.
Switching to time().
[0] https://docs.python.org/3/library/time.html
Change-Id: Ia7ef8d89119f7dc72619cac44b213611163ff054
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
# See the License for the specific language governing permissions and
# limitations under the License.
# See the License for the specific language governing permissions and
# limitations under the License.
+"""Metric library.
+
+Time measurements are done by time.time().
+Although time.time() is susceptible to big (or even negative) jumps
+when a system is badly synchronized, it is still better
+than time.monotonic(), as that value has no relation to epoch time.
+"""
from collections import namedtuple
from threading import Lock
from collections import namedtuple
from threading import Lock
-from time import monotonic
"""
with self._lock:
self._value += amount
"""
with self._lock:
self._value += amount
- self._timestamp = monotonic()
+ self._timestamp = time()
def set(self, value):
"""
def set(self, value):
"""
"""
with self._lock:
self._value = value
"""
with self._lock:
self._value = value
- self._timestamp = monotonic()
+ self._timestamp = time()
:rtype: tuple
"""
with self._lock:
:rtype: tuple
"""
with self._lock:
- return ((u"_info", self._value, 1.0, monotonic()),)
+ return ((u"_info", self._value, 1.0, time()),)