Skip to content

Commit

Permalink
prettier code, fixed one typo, import just time.time
Browse files Browse the repository at this point in the history
  • Loading branch information
zvin authored and cyberdelia committed May 11, 2012
1 parent 6e00243 commit 1249250
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 32 deletions.
2 changes: 1 addition & 1 deletion metrology/instruments/healthcheck.py
Expand Up @@ -18,5 +18,5 @@ def check(self):
"""
def check(self):
"""Returns True if what is being checker is healthy"""
"""Returns True if what is being checked is healthy"""
raise NotImplementedError
8 changes: 4 additions & 4 deletions metrology/instruments/meter.py
@@ -1,4 +1,4 @@
import time
from time import time

from atomic import Atomic

Expand All @@ -17,7 +17,7 @@ class Meter(object):
"""
def __init__(self, average_class=EWMA):
self.counter = Atomic(0)
self.start_time = time.time()
self.start_time = time()

self.m1_rate = EWMA.m1()
self.m5_rate = EWMA.m5()
Expand All @@ -34,7 +34,7 @@ def count(self):

def clear(self):
self.counter.value = 0
self.start_time = time.time()
self.start_time = time()

self.m1_rate.clear()
self.m5_rate.clear()
Expand Down Expand Up @@ -76,7 +76,7 @@ def mean_rate(self):
if self.counter.value == 0:
return 0.0
else:
elapsed = time.time() - self.start_time
elapsed = time() - self.start_time
return self.counter.value / elapsed

def stop(self):
Expand Down
6 changes: 3 additions & 3 deletions metrology/instruments/timer.py
@@ -1,4 +1,4 @@
import time
from time import time

from metrology.instruments.histogram import HistogramExponentiallyDecaying
from metrology.instruments.meter import Meter
Expand Down Expand Up @@ -32,11 +32,11 @@ def snapshot(self):
return self.histogram.snapshot

def __enter__(self):
self.start_time = time.time()
self.start_time = time()
return self

def __exit__(self, type, value, callback):
self.update(time.time() - self.start_time)
self.update(time() - self.start_time)

@property
def count(self):
Expand Down
23 changes: 11 additions & 12 deletions metrology/registry.py
Expand Up @@ -12,10 +12,10 @@ def __init__(self):

def clear(self):
with self.lock:
for key, metric in list(self.metrics.items()):
for metric in self.metrics.values():
if hasattr(metric, 'stop'):
metric.stop()
self.metrics = {}
self.metrics.clear()

def counter(self, name):
return self.add_or_get(name, Counter)
Expand Down Expand Up @@ -47,31 +47,30 @@ def get(self, name):
def add(self, name, metric):
with self.lock:
if name in self.metrics:
raise
raise RuntimeError("%s already present in the registry." % name)
else:
self.metrics[name] = metric

def add_or_get(self, name, klass):
with self.lock:
if name in self.metrics:
metric = self.metrics[name]
metric = self.metrics.get(name)
if metric is not None:
if not isinstance(metric, klass):
raise
else:
return metric
raise RuntimeError("%s is not of type %s." % (name, klass))
else:
if inspect.isclass(klass):
self.metrics[name] = klass()
metric = klass()
else:
self.metrics[name] = klass
return self.metrics[name]
metric = klass
self.metrics[name] = metric
return metric

def stop(self):
self.clear()

def __iter__(self):
with self.lock:
for name, metric in list(self.metrics.items()):
for name, metric in self.metrics.items():
yield name, metric

registry = Registry()
10 changes: 6 additions & 4 deletions metrology/reporter/graphite.py
@@ -1,6 +1,6 @@
import re
import socket
import time
from time import time

from metrology.instruments import * # noqa
from metrology.reporter.base import Reporter
Expand Down Expand Up @@ -61,21 +61,23 @@ def write(self):
'median', 'percentile_95th'
])

def send_metric(self, name, type, metric, keys, snapshot_keys=[]):
def send_metric(self, name, type, metric, keys, snapshot_keys=None):
if snapshot_keys is None:
snapshot_keys = []
base_name = re.sub(r"\s+", "_", name)
if self.prefix:
base_name = "{0}.{1}".format(self.prefix, base_name)

for name in keys:
value = getattr(metric, name)
self.socket.send("{0}.{1} {2} {3}\n\n".format(
base_name, name, value, int(time.time())
base_name, name, value, int(time())
))

if hasattr(metric, 'snapshot'):
snapshot = metric.snapshot
for name in snapshot_keys:
value = getattr(snapshot, name)
self.socket.send("{0}.{1} {2} {3}\n\n".format(
base_name, name, value, int(time.time())
base_name, name, value, int(time())
))
4 changes: 3 additions & 1 deletion metrology/reporter/logger.py
Expand Up @@ -52,7 +52,9 @@ def write(self):
'median', 'percentile_95th'
])

def log_metric(self, name, type, metric, keys, snapshot_keys=[]):
def log_metric(self, name, type, metric, keys, snapshot_keys=None):
if snapshot_keys is None:
snapshot_keys = []
messages = []
if self.prefix:
messages.append(self.prefix)
Expand Down
14 changes: 7 additions & 7 deletions metrology/stats/sample.py
@@ -1,6 +1,6 @@
import math
import random
import time
from time import time

from atomic import Atomic
from bintrees.rbtree import RBTree
Expand All @@ -12,10 +12,10 @@
class UniformSample(object):
def __init__(self, reservoir_size):
self.counter = Atomic(0)
self.values = [0 for i in range(reservoir_size)]
self.values = [0] * reservoir_size

def clear(self):
self.values = [0 for i in range(len(self.values))]
self.values = [0] * len(self.values)
self.counter.value = 0

def size(self):
Expand Down Expand Up @@ -57,8 +57,8 @@ def clear(self):
with self.lock:
self.values.clear()
self.counter.value = 0
self.next_scale_time.value = time.time() + self.RESCALE_THRESHOLD
self.start_time = time.time()
self.next_scale_time.value = time() + self.RESCALE_THRESHOLD
self.start_time = time()

def size(self):
count = self.counter.value
Expand All @@ -80,14 +80,14 @@ def rescale(self, now, next_time):
if self.next_scale_time.compare_and_swap(next_time, now + self.RESCALE_THRESHOLD):
with self.lock:
old_start_time = self.start_time
self.start_time = time.time()
self.start_time = time()
for key in list(self.values.keys()):
value = self.values.remove(key)
self.values[key * math.exp(-self.alpha * (self.start_time - old_start_time))] = value

def update(self, value, timestamp=None):
if not timestamp:
timestamp = time.time()
timestamp = time()
with self.lock:
priority = self.weight(timestamp - self.start_time) / random.random()
new_count = self.counter.update(lambda v: v + 1)
Expand Down

0 comments on commit 1249250

Please sign in to comment.