diff options
author | Erik Johnston <erik@matrix.org> | 2016-06-03 13:41:17 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-06-03 13:41:17 +0100 |
commit | d88cf9ed730c6d9905202a059de63f3d7218b361 (patch) | |
tree | a130f5eb1b72d3d4a1a7b9e64a5855d148cb8b7e /synapse/handlers | |
parent | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/timings (diff) | |
parent | Presence metrics. Change def of small delta (diff) | |
download | synapse-d88cf9ed730c6d9905202a059de63f3d7218b361.tar.xz |
Merge branch 'erikj/presence_coount' of github.com:matrix-org/synapse into erikj/timings
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/presence.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index fc8538b41e..eb877763ee 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -50,6 +50,9 @@ timers_fired_counter = metrics.register_counter("timers_fired") federation_presence_counter = metrics.register_counter("federation_presence") bump_active_time_counter = metrics.register_counter("bump_active_time") +full_update_presence_counter = metrics.register_counter("full_update_presence") +partial_update_presence_counter = metrics.register_counter("partial_update_presence") + # If a user was last active in the last LAST_ACTIVE_GRANULARITY, consider them # "currently_active" @@ -974,13 +977,13 @@ class PresenceEventSource(object): user_ids_changed = set() changed = None - if from_key and max_token - from_key < 100: - # For small deltas, its quicker to get all changes and then - # work out if we share a room or they're in our presence list + if from_key: changed = stream_change_cache.get_all_entities_changed(from_key) - # get_all_entities_changed can return None - if changed is not None: + if changed is not None and len(changed) < 100: + # For small deltas, its quicker to get all changes and then + # work out if we share a room or they're in our presence list + partial_update_presence_counter.inc() for other_user_id in changed: if other_user_id in friends: user_ids_changed.add(other_user_id) @@ -992,6 +995,8 @@ class PresenceEventSource(object): else: # Too many possible updates. Find all users we can see and check # if any of them have changed. + full_update_presence_counter.inc() + user_ids_to_check = set() for room_id in room_ids: users = yield self.store.get_users_in_room(room_id) |