def register_cache(name, cache): caches_by_name[name] = cache return metrics.register_cache( "cache", lambda: len(cache), name, )
sql_logger = logging.getLogger("synapse.storage.SQL") transaction_logger = logging.getLogger("synapse.storage.txn") perf_logger = logging.getLogger("synapse.storage.TIME") metrics = synapse.metrics.get_metrics_for("synapse.storage") sql_scheduling_timer = metrics.register_distribution("schedule_time") sql_query_timer = metrics.register_distribution("query_time", labels=["verb"]) sql_txn_timer = metrics.register_distribution("transaction_time", labels=["desc"]) caches_by_name = {} cache_counter = metrics.register_cache( "cache", lambda: {(name,): len(caches_by_name[name]) for name in caches_by_name.keys()}, labels=["name"], ) class Cache(object): def __init__(self, name, max_entries=1000, keylen=1, lru=False): if lru: self.cache = LruCache(max_size=max_entries) self.max_entries = None else: self.cache = OrderedDict() self.max_entries = max_entries self.name = name
# limitations under the License. import synapse.metrics from lrucache import LruCache import os CACHE_SIZE_FACTOR = float(os.environ.get("SYNAPSE_CACHE_FACTOR", 0.1)) DEBUG_CACHES = False metrics = synapse.metrics.get_metrics_for("synapse.util.caches") caches_by_name = {} cache_counter = metrics.register_cache( "cache", lambda: {(name,): len(caches_by_name[name]) for name in caches_by_name.keys()}, labels=["name"], ) _string_cache = LruCache(int(5000 * CACHE_SIZE_FACTOR)) caches_by_name["string_cache"] = _string_cache KNOWN_KEYS = { key: key for key in ( "auth_events", "content", "depth", "event_id", "hashes",