update to more consistently use seconds in any metrics or logging

This commit is contained in:
Amber Brown 2018-05-28 19:39:27 +10:00
parent 5c40ce3777
commit 3ef5cd74a6
4 changed files with 38 additions and 38 deletions

View File

@ -139,8 +139,8 @@ LaterGauge(
class RequestMetrics(object): class RequestMetrics(object):
def start(self, time_msec, name, method): def start(self, time_sec, name, method):
self.start = time_msec self.start = time_sec
self.start_context = LoggingContext.current_context() self.start_context = LoggingContext.current_context()
self.name = name self.name = name
self.method = method self.method = method
@ -149,7 +149,7 @@ class RequestMetrics(object):
_in_flight_requests.add(self) _in_flight_requests.add(self)
def stop(self, time_msec, request): def stop(self, time_sec, request):
_in_flight_requests.discard(self) _in_flight_requests.discard(self)
context = LoggingContext.current_context() context = LoggingContext.current_context()
@ -170,7 +170,7 @@ class RequestMetrics(object):
response_count.labels(request.method, self.name, tag).inc() response_count.labels(request.method, self.name, tag).inc()
response_timer.labels(request.method, self.name, tag).observe( response_timer.labels(request.method, self.name, tag).observe(
time_msec - self.start time_sec - self.start
) )
ru_utime, ru_stime = context.get_resource_usage() ru_utime, ru_stime = context.get_resource_usage()
@ -181,10 +181,10 @@ class RequestMetrics(object):
context.db_txn_count context.db_txn_count
) )
response_db_txn_duration.labels(request.method, self.name, tag).inc( response_db_txn_duration.labels(request.method, self.name, tag).inc(
context.db_txn_duration_ms / 1000. context.db_txn_duration_sec
) )
response_db_sched_duration.labels(request.method, self.name, tag).inc( response_db_sched_duration.labels(request.method, self.name, tag).inc(
context.db_sched_duration_ms / 1000. context.db_sched_duration_sec
) )
response_size.labels(request.method, self.name, tag).inc(request.sentLength) response_size.labels(request.method, self.name, tag).inc(request.sentLength)
@ -207,11 +207,11 @@ class RequestMetrics(object):
) )
in_flight_requests_db_txn_duration.labels(self.method, self.name).inc( in_flight_requests_db_txn_duration.labels(self.method, self.name).inc(
diff.db_txn_duration_ms / 1000. diff.db_txn_duration_sec
) )
in_flight_requests_db_sched_duration.labels(self.method, self.name).inc( in_flight_requests_db_sched_duration.labels(self.method, self.name).inc(
diff.db_sched_duration_ms / 1000. diff.db_sched_duration_sec
) )
@ -223,18 +223,18 @@ class _RequestStats(object):
"ru_utime", "ru_utime",
"ru_stime", "ru_stime",
"db_txn_count", "db_txn_count",
"db_txn_duration_ms", "db_txn_duration_sec",
"db_sched_duration_ms", "db_sched_duration_sec",
] ]
def __init__( def __init__(
self, ru_utime, ru_stime, db_txn_count, db_txn_duration_ms, db_sched_duration_ms self, ru_utime, ru_stime, db_txn_count, db_txn_duration_sec, db_sched_duration_sec
): ):
self.ru_utime = ru_utime self.ru_utime = ru_utime
self.ru_stime = ru_stime self.ru_stime = ru_stime
self.db_txn_count = db_txn_count self.db_txn_count = db_txn_count
self.db_txn_duration_ms = db_txn_duration_ms self.db_txn_duration_sec = db_txn_duration_sec
self.db_sched_duration_ms = db_sched_duration_ms self.db_sched_duration_sec = db_sched_duration_sec
@staticmethod @staticmethod
def from_context(context): def from_context(context):
@ -243,8 +243,8 @@ class _RequestStats(object):
return _RequestStats( return _RequestStats(
ru_utime, ru_stime, ru_utime, ru_stime,
context.db_txn_count, context.db_txn_count,
context.db_txn_duration_ms, context.db_txn_duration_sec,
context.db_sched_duration_ms, context.db_sched_duration_sec,
) )
def update(self, context): def update(self, context):
@ -260,14 +260,14 @@ class _RequestStats(object):
new.ru_utime - self.ru_utime, new.ru_utime - self.ru_utime,
new.ru_stime - self.ru_stime, new.ru_stime - self.ru_stime,
new.db_txn_count - self.db_txn_count, new.db_txn_count - self.db_txn_count,
new.db_txn_duration_ms - self.db_txn_duration_ms, new.db_txn_duration_sec - self.db_txn_duration_sec,
new.db_sched_duration_ms - self.db_sched_duration_ms, new.db_sched_duration_sec - self.db_sched_duration_sec,
) )
self.ru_utime = new.ru_utime self.ru_utime = new.ru_utime
self.ru_stime = new.ru_stime self.ru_stime = new.ru_stime
self.db_txn_count = new.db_txn_count self.db_txn_count = new.db_txn_count
self.db_txn_duration_ms = new.db_txn_duration_ms self.db_txn_duration_sec = new.db_txn_duration_sec
self.db_sched_duration_ms = new.db_sched_duration_ms self.db_sched_duration_sec = new.db_sched_duration_sec
return diff return diff

View File

@ -59,7 +59,7 @@ class LoggingContext(object):
__slots__ = [ __slots__ = [
"previous_context", "name", "ru_stime", "ru_utime", "previous_context", "name", "ru_stime", "ru_utime",
"db_txn_count", "db_txn_duration_ms", "db_sched_duration_ms", "db_txn_count", "db_txn_duration_sec", "db_sched_duration_sec",
"usage_start", "usage_start",
"main_thread", "alive", "main_thread", "alive",
"request", "tag", "request", "tag",
@ -84,10 +84,10 @@ class LoggingContext(object):
def stop(self): def stop(self):
pass pass
def add_database_transaction(self, duration_ms): def add_database_transaction(self, duration_sec):
pass pass
def add_database_scheduled(self, sched_ms): def add_database_scheduled(self, sched_sec):
pass pass
def __nonzero__(self): def __nonzero__(self):
@ -103,11 +103,11 @@ class LoggingContext(object):
self.ru_utime = 0. self.ru_utime = 0.
self.db_txn_count = 0 self.db_txn_count = 0
# ms spent waiting for db txns, excluding scheduling time # sec spent waiting for db txns, excluding scheduling time
self.db_txn_duration_ms = 0 self.db_txn_duration_sec = 0
# ms spent waiting for db txns to be scheduled # sec spent waiting for db txns to be scheduled
self.db_sched_duration_ms = 0 self.db_sched_duration_sec = 0
# If alive has the thread resource usage when the logcontext last # If alive has the thread resource usage when the logcontext last
# became active. # became active.
@ -230,18 +230,18 @@ class LoggingContext(object):
return ru_utime, ru_stime return ru_utime, ru_stime
def add_database_transaction(self, duration_ms): def add_database_transaction(self, duration_sec):
self.db_txn_count += 1 self.db_txn_count += 1
self.db_txn_duration_ms += duration_ms self.db_txn_duration_sec += duration_sec
def add_database_scheduled(self, sched_ms): def add_database_scheduled(self, sched_sec):
"""Record a use of the database pool """Record a use of the database pool
Args: Args:
sched_ms (int): number of milliseconds it took us to get a sched_sec (float): number of seconds it took us to get a
connection connection
""" """
self.db_sched_duration_ms += sched_ms self.db_sched_duration_sec += sched_sec
class LoggingContextFilter(logging.Filter): class LoggingContextFilter(logging.Filter):

View File

@ -96,7 +96,7 @@ def time_function(f):
id = _TIME_FUNC_ID id = _TIME_FUNC_ID
_TIME_FUNC_ID += 1 _TIME_FUNC_ID += 1
start = time.clock() * 1000 start = time.clock()
try: try:
_log_debug_as_f( _log_debug_as_f(
@ -107,10 +107,10 @@ def time_function(f):
r = f(*args, **kwargs) r = f(*args, **kwargs)
finally: finally:
end = time.clock() * 1000 end = time.clock()
_log_debug_as_f( _log_debug_as_f(
f, f,
"[FUNC END] {%s-%d} %f", "[FUNC END] {%s-%d} %.3f sec",
(func_name, id, end - start,), (func_name, id, end - start,),
) )

View File

@ -74,7 +74,7 @@ class Measure(object):
self.created_context = False self.created_context = False
def __enter__(self): def __enter__(self):
self.start = self.clock.time_msec() self.start = self.clock.time()
self.start_context = LoggingContext.current_context() self.start_context = LoggingContext.current_context()
if not self.start_context: if not self.start_context:
self.start_context = LoggingContext("Measure") self.start_context = LoggingContext("Measure")
@ -90,7 +90,7 @@ class Measure(object):
if isinstance(exc_type, Exception) or not self.start_context: if isinstance(exc_type, Exception) or not self.start_context:
return return
duration = self.clock.time_msec() - self.start duration = self.clock.time() - self.start
block_counter.labels(self.name).inc() block_counter.labels(self.name).inc()
block_timer.labels(self.name).inc(duration) block_timer.labels(self.name).inc(duration)
@ -114,9 +114,9 @@ class Measure(object):
block_ru_stime.labels(self.name).inc(ru_stime - self.ru_stime) block_ru_stime.labels(self.name).inc(ru_stime - self.ru_stime)
block_db_txn_count.labels(self.name).inc(context.db_txn_count - self.db_txn_count) block_db_txn_count.labels(self.name).inc(context.db_txn_count - self.db_txn_count)
block_db_txn_duration.labels(self.name).inc( block_db_txn_duration.labels(self.name).inc(
(context.db_txn_duration_ms - self.db_txn_duration_ms) / 1000.) context.db_txn_duration_sec - self.db_txn_duration_sec)
block_db_sched_duration.labels(self.name).inc( block_db_sched_duration.labels(self.name).inc(
(context.db_sched_duration_ms - self.db_sched_duration_ms) / 1000.) context.db_sched_duration_sec - self.db_sched_duration_sec)
if self.created_context: if self.created_context:
self.start_context.__exit__(exc_type, exc_val, exc_tb) self.start_context.__exit__(exc_type, exc_val, exc_tb)