Add metrics to the receipts cache

pull/227/head
Erik Johnston 2015-08-13 16:58:23 +01:00
parent 7e77a82c5f
commit 5db5677969
2 changed files with 13 additions and 0 deletions

View File

@ -151,5 +151,12 @@ class CacheMetric(object):
def inc_misses(self, *values): def inc_misses(self, *values):
self.total.inc(*values) self.total.inc(*values)
def inc_hits_by(self, inc, *values):
self.hits.inc_by(inc, *values)
self.total.inc_by(inc, *values)
def inc_misses_by(self, inc, *values):
self.total.inc_by(inc, *values)
def render(self): def render(self):
return self.hits.render() + self.total.render() + self.size.render() return self.hits.render() + self.total.render() + self.size.render()

View File

@ -15,6 +15,7 @@
from ._base import SQLBaseStore from ._base import SQLBaseStore
from synapse.util.caches.descriptors import cachedInlineCallbacks from synapse.util.caches.descriptors import cachedInlineCallbacks
from synapse.util.caches import cache_counter, caches_by_name
from twisted.internet import defer from twisted.internet import defer
@ -305,6 +306,8 @@ class _RoomStreamChangeCache(object):
self._room_to_key = {} self._room_to_key = {}
self._cache = sorteddict() self._cache = sorteddict()
self._earliest_key = None self._earliest_key = None
self.name = "ReceiptsRoomChangeCache"
caches_by_name[self.name] = self._cache
@defer.inlineCallbacks @defer.inlineCallbacks
def get_rooms_changed(self, store, room_ids, key): def get_rooms_changed(self, store, room_ids, key):
@ -321,6 +324,9 @@ class _RoomStreamChangeCache(object):
else: else:
result = room_ids result = room_ids
cache_counter.inc_hits_by(len(result), self.name)
cache_counter.inc_misses_by(len(room_ids) - len(result), self.name)
defer.returnValue(result) defer.returnValue(result)
@defer.inlineCallbacks @defer.inlineCallbacks