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.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