aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py')
-rw-r--r--.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py
new file mode 100644
index 00000000..c92958a3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/redis/redis.py
@@ -0,0 +1,69 @@
+"""
+Instrumentation for Redis
+
+https://github.com/redis/redis-py
+"""
+
+from sentry_sdk.integrations.redis._sync_common import (
+ patch_redis_client,
+ patch_redis_pipeline,
+)
+from sentry_sdk.integrations.redis.modules.queries import _set_db_data
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from typing import Any, Sequence
+
+
+def _get_redis_command_args(command):
+ # type: (Any) -> Sequence[Any]
+ return command[0]
+
+
+def _patch_redis(StrictRedis, client): # noqa: N803
+ # type: (Any, Any) -> None
+ patch_redis_client(
+ StrictRedis,
+ is_cluster=False,
+ set_db_data_fn=_set_db_data,
+ )
+ patch_redis_pipeline(
+ client.Pipeline,
+ is_cluster=False,
+ get_command_args_fn=_get_redis_command_args,
+ set_db_data_fn=_set_db_data,
+ )
+ try:
+ strict_pipeline = client.StrictPipeline
+ except AttributeError:
+ pass
+ else:
+ patch_redis_pipeline(
+ strict_pipeline,
+ is_cluster=False,
+ get_command_args_fn=_get_redis_command_args,
+ set_db_data_fn=_set_db_data,
+ )
+
+ try:
+ import redis.asyncio
+ except ImportError:
+ pass
+ else:
+ from sentry_sdk.integrations.redis._async_common import (
+ patch_redis_async_client,
+ patch_redis_async_pipeline,
+ )
+
+ patch_redis_async_client(
+ redis.asyncio.client.StrictRedis,
+ is_cluster=False,
+ set_db_data_fn=_set_db_data,
+ )
+ patch_redis_async_pipeline(
+ redis.asyncio.client.Pipeline,
+ False,
+ _get_redis_command_args,
+ set_db_data_fn=_set_db_data,
+ )