feat: adds usage logging and log key to the cache engine factory

This commit is contained in:
hajdul88 2026-01-15 11:53:36 +01:00
parent 97fcc15af5
commit e8edf4482d

View file

@ -1,7 +1,6 @@
"""Factory to get the appropriate cache coordination engine (e.g., Redis).""" """Factory to get the appropriate cache coordination engine (e.g., Redis)."""
from functools import lru_cache from functools import lru_cache
import os
from typing import Optional from typing import Optional
from cognee.infrastructure.databases.cache.config import get_cache_config from cognee.infrastructure.databases.cache.config import get_cache_config
from cognee.infrastructure.databases.cache.cache_db_interface import CacheDBInterface from cognee.infrastructure.databases.cache.cache_db_interface import CacheDBInterface
@ -17,6 +16,7 @@ def create_cache_engine(
cache_username: str, cache_username: str,
cache_password: str, cache_password: str,
lock_key: str, lock_key: str,
log_key: str,
agentic_lock_expire: int = 240, agentic_lock_expire: int = 240,
agentic_lock_timeout: int = 300, agentic_lock_timeout: int = 300,
): ):
@ -30,6 +30,7 @@ def create_cache_engine(
- cache_username: Username to authenticate with. - cache_username: Username to authenticate with.
- cache_password: Password to authenticate with. - cache_password: Password to authenticate with.
- lock_key: Identifier used for the locking resource. - lock_key: Identifier used for the locking resource.
- log_key: Identifier used for usage logging.
- agentic_lock_expire: Duration to hold the lock after acquisition. - agentic_lock_expire: Duration to hold the lock after acquisition.
- agentic_lock_timeout: Max time to wait for the lock before failing. - agentic_lock_timeout: Max time to wait for the lock before failing.
@ -37,7 +38,7 @@ def create_cache_engine(
-------- --------
- CacheDBInterface: An instance of the appropriate cache adapter. - CacheDBInterface: An instance of the appropriate cache adapter.
""" """
if config.caching: if config.caching or config.usage_logging:
from cognee.infrastructure.databases.cache.redis.RedisAdapter import RedisAdapter from cognee.infrastructure.databases.cache.redis.RedisAdapter import RedisAdapter
if config.cache_backend == "redis": if config.cache_backend == "redis":
@ -47,6 +48,7 @@ def create_cache_engine(
username=cache_username, username=cache_username,
password=cache_password, password=cache_password,
lock_name=lock_key, lock_name=lock_key,
log_key=log_key,
timeout=agentic_lock_expire, timeout=agentic_lock_expire,
blocking_timeout=agentic_lock_timeout, blocking_timeout=agentic_lock_timeout,
) )
@ -61,7 +63,7 @@ def create_cache_engine(
return None return None
def get_cache_engine(lock_key: Optional[str] = None) -> CacheDBInterface: def get_cache_engine(lock_key: Optional[str] = None, log_key: Optional[str] = None) -> CacheDBInterface:
""" """
Returns a cache adapter instance using current context configuration. Returns a cache adapter instance using current context configuration.
""" """
@ -72,6 +74,7 @@ def get_cache_engine(lock_key: Optional[str] = None) -> CacheDBInterface:
cache_username=config.cache_username, cache_username=config.cache_username,
cache_password=config.cache_password, cache_password=config.cache_password,
lock_key=lock_key, lock_key=lock_key,
log_key=log_key,
agentic_lock_expire=config.agentic_lock_expire, agentic_lock_expire=config.agentic_lock_expire,
agentic_lock_timeout=config.agentic_lock_timeout, agentic_lock_timeout=config.agentic_lock_timeout,
) )