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.
This commit is contained in:
parent
68128d5626
commit
f682af052d
|
@ -167,22 +167,22 @@ class PerformanceCounters(object):
|
|||
self.current_counters = {}
|
||||
self.previous_counters = {}
|
||||
|
||||
def update(self, key, start_time, end_time=None):
|
||||
if end_time is None:
|
||||
end_time = time.time()
|
||||
duration = end_time - start_time
|
||||
def update(self, key, duration_secs):
|
||||
count, cum_time = self.current_counters.get(key, (0, 0))
|
||||
count += 1
|
||||
cum_time += duration
|
||||
cum_time += duration_secs
|
||||
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 = []
|
||||
for name, (count, cum_time) in iteritems(self.current_counters):
|
||||
prev_count, prev_time = self.previous_counters.get(name, (0, 0))
|
||||
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)
|
||||
|
@ -362,10 +362,11 @@ class SQLBaseStore(object):
|
|||
time_then = self._previous_loop_ts
|
||||
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(
|
||||
time_now - time_then, limit=3
|
||||
duration, limit=3
|
||||
)
|
||||
|
||||
perf_logger.info(
|
||||
|
@ -453,7 +454,7 @@ class SQLBaseStore(object):
|
|||
transaction_logger.debug("[TXN END] {%s} %f sec", name, 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)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
|
Loading…
Reference in New Issue