| Index: appengine_module/gae_ts_mon/deferred_metric_store.py
|
| diff --git a/appengine_module/gae_ts_mon/deferred_metric_store.py b/appengine_module/gae_ts_mon/deferred_metric_store.py
|
| index e063fa74a0df1d3d0da07c50636abb487f5bd9a7..a8f74703ee4f445d2346d222e552fc5f9efed28c 100644
|
| --- a/appengine_module/gae_ts_mon/deferred_metric_store.py
|
| +++ b/appengine_module/gae_ts_mon/deferred_metric_store.py
|
| @@ -3,7 +3,6 @@
|
| # found in the LICENSE file.
|
|
|
| import logging
|
| -import operator
|
| import threading
|
|
|
| from infra_libs.ts_mon.common import metric_store
|
| @@ -23,7 +22,7 @@ class DeferredMetricStore(metric_store.MetricStore):
|
| self._thread_local = threading.local()
|
|
|
| def initialize_context(self):
|
| - self._thread_local.deferred = {}
|
| + self._thread_local.deferred = []
|
|
|
| def finalize_context(self):
|
| try:
|
| @@ -34,7 +33,7 @@ class DeferredMetricStore(metric_store.MetricStore):
|
| del self._thread_local.deferred
|
| self._thread_local.finalizing = True
|
| try:
|
| - self._base_store.modify_multi(deferred.itervalues())
|
| + self._base_store.modify_multi(deferred)
|
| finally:
|
| self._thread_local.finalizing = False
|
|
|
| @@ -58,12 +57,10 @@ class DeferredMetricStore(metric_store.MetricStore):
|
| 'your WSGIApplication with gae_ts_mon.initialize?')
|
| self._base_store.set(name, fields, value, enforce_ge)
|
| else:
|
| - key = (name, fields)
|
| - deferred[key] = metric_store.combine_modifications(
|
| - deferred.get(key),
|
| + deferred.append(
|
| metric_store.Modification(name, fields, 'set', (value, enforce_ge)))
|
|
|
| - def incr(self, name, fields, delta, modify_fn=operator.add):
|
| + def incr(self, name, fields, delta, modify_fn=None):
|
| try:
|
| deferred = self._thread_local.deferred
|
| except AttributeError:
|
| @@ -74,9 +71,7 @@ class DeferredMetricStore(metric_store.MetricStore):
|
| 'your WSGIApplication with gae_ts_mon.initialize?')
|
| self._base_store.incr(name, fields, delta, modify_fn)
|
| else:
|
| - key = (name, fields)
|
| - deferred[key] = metric_store.combine_modifications(
|
| - deferred.get(key),
|
| + deferred.append(
|
| metric_store.Modification(name, fields, 'incr', (delta, modify_fn)))
|
|
|
| def reset_for_unittest(self, name=None):
|
| @@ -87,6 +82,7 @@ class DeferredMetricStore(metric_store.MetricStore):
|
| except AttributeError:
|
| pass
|
| else:
|
| - for key in deferred.keys():
|
| - if name is None or key[0] == name:
|
| - del deferred[key]
|
| + if name is None:
|
| + self._thread_local.deferred = []
|
| + else:
|
| + self._thread_local.deferred = [x for x in deferred if x.name != name]
|
|
|