forked from MirrorHub/synapse
Add a scalar gauge metric on the size of the presence user cachemap
This commit is contained in:
parent
d8caa5454d
commit
59c448f074
1 changed files with 7 additions and 0 deletions
|
@ -21,6 +21,7 @@ from synapse.api.constants import PresenceState
|
||||||
from synapse.util.logutils import log_function
|
from synapse.util.logutils import log_function
|
||||||
from synapse.util.logcontext import PreserveLoggingContext
|
from synapse.util.logcontext import PreserveLoggingContext
|
||||||
from synapse.types import UserID
|
from synapse.types import UserID
|
||||||
|
import synapse.metrics
|
||||||
|
|
||||||
from ._base import BaseHandler
|
from ._base import BaseHandler
|
||||||
|
|
||||||
|
@ -29,6 +30,8 @@ import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
metrics = synapse.metrics.get_metrics_for(__name__)
|
||||||
|
|
||||||
|
|
||||||
# TODO(paul): Maybe there's one of these I can steal from somewhere
|
# TODO(paul): Maybe there's one of these I can steal from somewhere
|
||||||
def partition(l, func):
|
def partition(l, func):
|
||||||
|
@ -133,6 +136,10 @@ class PresenceHandler(BaseHandler):
|
||||||
self._user_cachemap = {}
|
self._user_cachemap = {}
|
||||||
self._user_cachemap_latest_serial = 0
|
self._user_cachemap_latest_serial = 0
|
||||||
|
|
||||||
|
metrics.register_callback("user_cachemap:size",
|
||||||
|
lambda: len(self._user_cachemap)
|
||||||
|
)
|
||||||
|
|
||||||
def _get_or_make_usercache(self, user):
|
def _get_or_make_usercache(self, user):
|
||||||
"""If the cache entry doesn't exist, initialise a new one."""
|
"""If the cache entry doesn't exist, initialise a new one."""
|
||||||
if user not in self._user_cachemap:
|
if user not in self._user_cachemap:
|
||||||
|
|
Loading…
Reference in a new issue