summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/handlers/receipts.py2
-rw-r--r--synapse/metrics/metric.py7
-rw-r--r--synapse/storage/receipts.py6
3 files changed, 13 insertions, 2 deletions
diff --git a/synapse/handlers/receipts.py b/synapse/handlers/receipts.py
index 415dd339f6..86c911c4bf 100644
--- a/synapse/handlers/receipts.py
+++ b/synapse/handlers/receipts.py
@@ -171,7 +171,6 @@ class ReceiptEventSource(object):
 
     @defer.inlineCallbacks
     def get_new_events_for_user(self, user, from_key, limit):
-        defer.returnValue(([], from_key))
         from_key = int(from_key)
         to_key = yield self.get_current_key()
 
@@ -194,7 +193,6 @@ class ReceiptEventSource(object):
     @defer.inlineCallbacks
     def get_pagination_rows(self, user, config, key):
         to_key = int(config.from_key)
-        defer.returnValue(([], to_key))
 
         if config.to_key:
             from_key = int(config.to_key)
diff --git a/synapse/metrics/metric.py b/synapse/metrics/metric.py
index 21b37748f6..5b1e9c3ddc 100644
--- a/synapse/metrics/metric.py
+++ b/synapse/metrics/metric.py
@@ -151,5 +151,12 @@ class CacheMetric(object):
     def inc_misses(self, *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):
         return self.hits.render() + self.total.render() + self.size.render()
diff --git a/synapse/storage/receipts.py b/synapse/storage/receipts.py
index cac1a5657e..42f4b5f78d 100644
--- a/synapse/storage/receipts.py
+++ b/synapse/storage/receipts.py
@@ -15,6 +15,7 @@
 
 from ._base import SQLBaseStore
 from synapse.util.caches.descriptors import cachedInlineCallbacks
+from synapse.util.caches import cache_counter, caches_by_name
 
 from twisted.internet import defer
 
@@ -305,6 +306,8 @@ class _RoomStreamChangeCache(object):
         self._room_to_key = {}
         self._cache = sorteddict()
         self._earliest_key = None
+        self.name = "ReceiptsRoomChangeCache"
+        caches_by_name[self.name] = self._cache
 
     @defer.inlineCallbacks
     def get_rooms_changed(self, store, room_ids, key):
@@ -321,6 +324,9 @@ class _RoomStreamChangeCache(object):
         else:
             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.inlineCallbacks