Track user_dir current event stream position

This commit is contained in:
Andrew Morgan 2019-01-23 14:17:21 +00:00
parent 5cb15c0443
commit ef7865e2f2

View file

@ -19,6 +19,7 @@ from six import iteritems
from twisted.internet import defer
from prometheus_client import Gauge
from synapse.api.constants import EventTypes, JoinRules, Membership
from synapse.metrics.background_process_metrics import run_as_background_process
from synapse.storage.roommember import ProfileInfo
@ -27,6 +28,8 @@ from synapse.util.metrics import Measure
logger = logging.getLogger(__name__)
# Expose event stream processing position
event_processing_position = Gauge("event_stream_processing_position", "Currently processed up to position in the event stream")
class UserDirectoryHandler(object):
"""Handles querying of and keeping updated the user_directory.
@ -163,6 +166,10 @@ class UserDirectoryHandler(object):
yield self._handle_deltas(deltas)
self.pos = deltas[-1]["stream_id"]
# Expose current event processing position to prometheus
event_processing_position.set(self.pos)
yield self.store.update_user_directory_stream_pos(self.pos)
@defer.inlineCallbacks