1from django.core.cache.backends import locmem 2 3from django_prometheus.cache.metrics import ( 4 django_cache_get_total, 5 django_cache_hits_total, 6 django_cache_misses_total, 7) 8 9 10class LocMemCache(locmem.LocMemCache): 11 """Inherit filebased cache to add metrics about hit/miss ratio""" 12 13 def get(self, key, default=None, version=None): 14 django_cache_get_total.labels(backend="locmem").inc() 15 cached = super().get(key, default=None, version=version) 16 if cached is not None: 17 django_cache_hits_total.labels(backend="locmem").inc() 18 else: 19 django_cache_misses_total.labels(backend="locmem").inc() 20 return cached or default 21