Simplify PerformanceCounters.update interface
we already have the duration for the update, so may as well use it rather than passing extra params around and recalculating it.pull/5499/head
parent
68128d5626
commit
f682af052d
|
@ -167,22 +167,22 @@ class PerformanceCounters(object):
|
||||||
self.current_counters = {}
|
self.current_counters = {}
|
||||||
self.previous_counters = {}
|
self.previous_counters = {}
|
||||||
|
|
||||||
def update(self, key, start_time, end_time=None):
|
def update(self, key, duration_secs):
|
||||||
if end_time is None:
|
|
||||||
end_time = time.time()
|
|
||||||
duration = end_time - start_time
|
|
||||||
count, cum_time = self.current_counters.get(key, (0, 0))
|
count, cum_time = self.current_counters.get(key, (0, 0))
|
||||||
count += 1
|
count += 1
|
||||||
cum_time += duration
|
cum_time += duration_secs
|
||||||
self.current_counters[key] = (count, cum_time)
|
self.current_counters[key] = (count, cum_time)
|
||||||
return end_time
|
|
||||||
|
|
||||||
def interval(self, interval_duration, limit=3):
|
def interval(self, interval_duration_secs, limit=3):
|
||||||
counters = []
|
counters = []
|
||||||
for name, (count, cum_time) in iteritems(self.current_counters):
|
for name, (count, cum_time) in iteritems(self.current_counters):
|
||||||
prev_count, prev_time = self.previous_counters.get(name, (0, 0))
|
prev_count, prev_time = self.previous_counters.get(name, (0, 0))
|
||||||
counters.append(
|
counters.append(
|
||||||
((cum_time - prev_time) / interval_duration, count - prev_count, name)
|
(
|
||||||
|
(cum_time - prev_time) / interval_duration_secs,
|
||||||
|
count - prev_count,
|
||||||
|
name,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.previous_counters = dict(self.current_counters)
|
self.previous_counters = dict(self.current_counters)
|
||||||
|
@ -362,10 +362,11 @@ class SQLBaseStore(object):
|
||||||
time_then = self._previous_loop_ts
|
time_then = self._previous_loop_ts
|
||||||
self._previous_loop_ts = time_now
|
self._previous_loop_ts = time_now
|
||||||
|
|
||||||
ratio = (curr - prev) / (time_now - time_then)
|
duration = time_now - time_then
|
||||||
|
ratio = (curr - prev) / duration
|
||||||
|
|
||||||
top_three_counters = self._txn_perf_counters.interval(
|
top_three_counters = self._txn_perf_counters.interval(
|
||||||
time_now - time_then, limit=3
|
duration, limit=3
|
||||||
)
|
)
|
||||||
|
|
||||||
perf_logger.info(
|
perf_logger.info(
|
||||||
|
@ -453,7 +454,7 @@ class SQLBaseStore(object):
|
||||||
transaction_logger.debug("[TXN END] {%s} %f sec", name, duration)
|
transaction_logger.debug("[TXN END] {%s} %f sec", name, duration)
|
||||||
|
|
||||||
self._current_txn_total_time += duration
|
self._current_txn_total_time += duration
|
||||||
self._txn_perf_counters.update(desc, start, end)
|
self._txn_perf_counters.update(desc, duration)
|
||||||
sql_txn_timer.labels(desc).observe(duration)
|
sql_txn_timer.labels(desc).observe(duration)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
|
|
Loading…
Reference in New Issue