diff --git a/litellm/caching/redis_cache.py b/litellm/caching/redis_cache.py index 8ba0f2ec664..2efd979f462 100644 --- a/litellm/caching/redis_cache.py +++ b/litellm/caching/redis_cache.py @@ -530,7 +530,7 @@ def log_redis_failure( ) -def _log_redis_failure_value(logger: logging.Logger, level: int, message: str, failure: RedisFailure) -> None: +def log_redis_failure_value(logger: logging.Logger, level: int, message: str, failure: RedisFailure) -> None: if failure.kind == "breaker_open": logger.debug("%s: %s", message, failure.message, stacklevel=2) return @@ -617,7 +617,7 @@ async def _run_under_circuit_breaker( return result -def _is_redis_error(exc: BaseException) -> bool: +def is_redis_error(exc: BaseException) -> bool: from redis.exceptions import RedisError return isinstance(exc, RedisError) diff --git a/litellm/redis/transport/breaker.py b/litellm/redis/transport/breaker.py index 17de7ec3ce3..e9ad1819676 100644 --- a/litellm/redis/transport/breaker.py +++ b/litellm/redis/transport/breaker.py @@ -4,9 +4,9 @@ from typing import Final, TypeVar from litellm.caching.redis_cache import ( RedisCircuitBreaker, RedisCircuitBreakerOpenError, - _is_redis_error, # pyright: ignore[reportPrivateUsage] # same exception classes as RedisCache _is_redis_health_failure, # pyright: ignore[reportPrivateUsage] # same health classification as RedisCache _run_under_circuit_breaker, # pyright: ignore[reportPrivateUsage] # same admission and health signal as RedisCache + is_redis_error, is_redis_timeout_failure, ) from litellm.redis.transport.contract import Admit, RedisFailure @@ -31,6 +31,6 @@ async def run_under_breaker( def _redis_failure(exc: BaseException) -> RedisFailure | None: if _is_redis_health_failure(exc): return RedisFailure(kind="transport", message=str(exc), timeout=is_redis_timeout_failure(exc)) - if _is_redis_error(exc): + if is_redis_error(exc): return RedisFailure(kind="server", message=str(exc)) return None diff --git a/litellm/redis/transport/events.py b/litellm/redis/transport/events.py index c0c362c1edb..d1ae7e81eaa 100644 --- a/litellm/redis/transport/events.py +++ b/litellm/redis/transport/events.py @@ -9,7 +9,7 @@ from litellm._logging import verbose_logger from litellm._service_logger import ServiceLogging from litellm.caching.redis_cache import ( _get_call_stack_info, # pyright: ignore[reportPrivateUsage] # same caller attribution as RedisCache events - _log_redis_failure_value, # pyright: ignore[reportPrivateUsage] # same timeout throttle as RedisCache logging + log_redis_failure_value, ) from litellm.redis.transport.contract import RedisFailure from litellm.types.services import ServiceTypes @@ -66,6 +66,6 @@ def _log_failure(call_type: str, result: object) -> None: if not isinstance(result, RedisFailure): return target: Final = current_service_target() - _log_redis_failure_value( + log_redis_failure_value( verbose_logger, logging.WARNING, f"Redis {call_type} failed" + (f" for {target}" if target else ""), result )