2019-04-25 01:09:19 -04:00
|
|
|
from cacheops.signals import cache_invalidated, cache_read
|
2019-08-26 11:59:38 -04:00
|
|
|
from django.dispatch import Signal
|
2019-04-25 01:09:19 -04:00
|
|
|
from prometheus_client import Counter
|
|
|
|
|
|
|
|
|
2019-08-26 11:59:38 -04:00
|
|
|
#
|
|
|
|
# Caching
|
|
|
|
#
|
|
|
|
|
2019-04-25 01:09:19 -04:00
|
|
|
cacheops_cache_hit = Counter('cacheops_cache_hit', 'Number of cache hits')
|
|
|
|
cacheops_cache_miss = Counter('cacheops_cache_miss', 'Number of cache misses')
|
|
|
|
cacheops_cache_invalidated = Counter('cacheops_cache_invalidated', 'Number of cache invalidations')
|
|
|
|
|
|
|
|
|
|
|
|
def cache_read_collector(sender, func, hit, **kwargs):
|
|
|
|
if hit:
|
|
|
|
cacheops_cache_hit.inc()
|
|
|
|
else:
|
|
|
|
cacheops_cache_miss.inc()
|
|
|
|
|
|
|
|
|
|
|
|
def cache_invalidated_collector(sender, obj_dict, **kwargs):
|
|
|
|
cacheops_cache_invalidated.inc()
|
|
|
|
|
|
|
|
|
|
|
|
cache_read.connect(cache_read_collector)
|
|
|
|
cache_invalidated.connect(cache_invalidated_collector)
|
2019-08-26 11:59:38 -04:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Change logging
|
|
|
|
#
|
|
|
|
|
|
|
|
purge_changelog = Signal()
|