Skip to content

Commit 2f289eb

Browse files
committed
pass a client name when connecting to redis
1 parent f7e6d5b commit 2f289eb

File tree

17 files changed

+42
-81
lines changed

17 files changed

+42
-81
lines changed

packages/service-library/src/servicelib/redis.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ async def _cancel_or_warn(task: Task) -> None:
6060
@dataclass
6161
class RedisClientSDK:
6262
redis_dsn: str
63+
client_name: str
6364
decode_responses: bool = _DEFAULT_DECODE_RESPONSES
6465
health_check_interval: datetime.timedelta = _DEFAULT_HEALTH_CHECK_INTERVAL
6566

@@ -86,7 +87,7 @@ def __post_init__(self):
8687
socket_connect_timeout=_DEFAULT_SOCKET_TIMEOUT.total_seconds(),
8788
encoding="utf-8",
8889
decode_responses=self.decode_responses,
89-
auto_close_connection_pool=True,
90+
client_name=self.client_name,
9091
)
9192

9293
@retry(**RedisRetryPolicyUponInitialization(_logger).kwargs)
@@ -238,6 +239,7 @@ class RedisClientsManager:
238239

239240
databases_configs: set[RedisManagerDBConfig]
240241
settings: RedisSettings
242+
client_name: str
241243

242244
_client_sdks: dict[RedisDatabase, RedisClientSDK] = field(default_factory=dict)
243245

@@ -247,6 +249,7 @@ async def setup(self) -> None:
247249
redis_dsn=self.settings.build_redis_dsn(config.database),
248250
decode_responses=config.decode_responses,
249251
health_check_interval=config.health_check_interval,
252+
client_name=f"{self.client_name}",
250253
)
251254

252255
for client in self._client_sdks.values():

packages/service-library/tests/conftest.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ async def _(
8080
database: RedisDatabase, decode_response: bool = True # noqa: FBT002
8181
) -> AsyncIterator[RedisClientSDK]:
8282
redis_resources_dns = redis_service.build_redis_dsn(database)
83-
client = RedisClientSDK(redis_resources_dns, decode_responses=decode_response)
83+
client = RedisClientSDK(
84+
redis_resources_dns, decode_responses=decode_response, client_name="pytest"
85+
)
8486
assert client
8587
assert client.redis_dsn == redis_resources_dns
8688
await client.setup()
@@ -94,7 +96,9 @@ async def _cleanup_redis_data(clients_manager: RedisClientsManager) -> None:
9496
await clients_manager.client(db).redis.flushall()
9597

9698
async with RedisClientsManager(
97-
{RedisManagerDBConfig(db) for db in RedisDatabase}, redis_service
99+
{RedisManagerDBConfig(db) for db in RedisDatabase},
100+
redis_service,
101+
client_name="pytest",
98102
) as clients_manager:
99103
await _cleanup_redis_data(clients_manager)
100104
yield _

packages/service-library/tests/deferred_tasks/example_app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def __init__(self, redis_settings: RedisSettings, port: int) -> None:
6060
self.redis: Redis = RedisClientSDK(
6161
redis_settings.build_redis_dsn(RedisDatabase.DEFERRED_TASKS),
6262
decode_responses=True,
63+
client_name="example_app",
6364
).redis
6465
self.port = port
6566

@@ -84,6 +85,7 @@ def __init__(
8485
self._redis_client = RedisClientSDK(
8586
redis_settings.build_redis_dsn(RedisDatabase.DEFERRED_TASKS),
8687
decode_responses=False,
88+
client_name="example_app",
8789
)
8890
self._manager = DeferredManager(
8991
rabbit_settings,

packages/service-library/tests/deferred_tasks/test__base_deferred_handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ async def redis_client_sdk(
5555
sdk = RedisClientSDK(
5656
redis_service.build_redis_dsn(RedisDatabase.DEFERRED_TASKS),
5757
decode_responses=False,
58+
client_name="pytest",
5859
)
5960
await sdk.setup()
6061
yield sdk

packages/service-library/tests/test_redis.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,9 @@ async def test_redis_client_sdks_manager(
277277
RedisManagerDBConfig(db) for db in RedisDatabase
278278
}
279279
manager = RedisClientsManager(
280-
databases_configs=all_redis_configs, settings=redis_service
280+
databases_configs=all_redis_configs,
281+
settings=redis_service,
282+
client_name="pytest",
281283
)
282284

283285
async with manager:
@@ -290,7 +292,7 @@ async def test_redis_client_sdk_setup_shutdown(
290292
):
291293
# setup
292294
redis_resources_dns = redis_service.build_redis_dsn(RedisDatabase.RESOURCES)
293-
client = RedisClientSDK(redis_resources_dns)
295+
client = RedisClientSDK(redis_resources_dns, client_name="pytest")
294296
assert client
295297
assert client.redis_dsn == redis_resources_dns
296298

packages/service-library/tests/test_redis__recoonection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ async def test_redis_client_sdk_lost_connection(
2121
docker_client: docker.client.DockerClient,
2222
):
2323
redis_client_sdk = RedisClientSDK(
24-
redis_service.build_redis_dsn(RedisDatabase.RESOURCES)
24+
redis_service.build_redis_dsn(RedisDatabase.RESOURCES), client_name="pytest"
2525
)
2626

2727
await redis_client_sdk.setup()

services/autoscaling/src/simcore_service_autoscaling/modules/redis.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ async def on_startup() -> None:
1313
app.state.redis_client_sdk = None
1414
settings: RedisSettings = app.state.settings.AUTOSCALING_REDIS
1515
redis_locks_dsn = settings.build_redis_dsn(RedisDatabase.LOCKS)
16-
app.state.redis_client_sdk = client = RedisClientSDK(redis_locks_dsn)
16+
app.state.redis_client_sdk = client = RedisClientSDK(
17+
redis_locks_dsn, client_name=app.title
18+
)
1719
await client.setup()
1820

1921
async def on_shutdown() -> None:

services/clusters-keeper/src/simcore_service_clusters_keeper/modules/redis.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ async def on_startup() -> None:
1515
app.state.redis_client_sdk = None
1616
settings: RedisSettings = get_application_settings(app).CLUSTERS_KEEPER_REDIS
1717
redis_locks_dsn = settings.build_redis_dsn(RedisDatabase.LOCKS)
18-
app.state.redis_client_sdk = client = RedisClientSDK(redis_locks_dsn)
18+
app.state.redis_client_sdk = client = RedisClientSDK(
19+
redis_locks_dsn, client_name=app.title
20+
)
1921
await client.setup()
2022

2123
async def on_shutdown() -> None:

services/director-v2/src/simcore_service_director_v2/modules/redis.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ async def on_startup() -> None:
1818
)
1919
},
2020
settings=settings.REDIS,
21+
client_name=app.title,
2122
)
2223
await redis_clients_manager.setup()
2324

services/director-v2/tests/unit/test_utils_distributed_identifier.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ async def redis_client_sdk(
171171
RedisDatabase.DISTRIBUTED_IDENTIFIERS
172172
)
173173

174-
client = RedisClientSDK(redis_resources_dns)
174+
client = RedisClientSDK(redis_resources_dns, client_name="pytest")
175175
assert client
176176
assert client.redis_dsn == redis_resources_dns
177177
await client.setup()

0 commit comments

Comments
 (0)