Skip to content

Python: Add CLIENT SETNAME to Valkey/Redis connector for connection identification #14038

@atao2004

Description

@atao2004

Summary

The Semantic Kernel Valkey connector uses redis-py (Redis from redis.asyncio.client) without setting a client_name. This means connections appear anonymous in monitoring tools like CLIENT LIST and Valkey Admin.

Suggested Fix

In python/semantic_kernel/connectors/redis.py (line ~16), add client_name when creating the Redis client:

client = Redis(host=host, port=port, client_name="semantic_kernel_vector_store_client")

Why This Matters

When monitoring a Valkey server with multiple connected applications, CLIENT LIST shows each connection's name. Without a client name, operators cannot distinguish Semantic Kernel connections from other anonymous clients. This is especially important in production environments with ElastiCache where multiple services share the same Valkey cluster.

Setting client_name sends a CLIENT SETNAME command on connection, making the connection identifiable in:

  • CLIENT LIST output
  • Monitoring dashboards (e.g., Valkey Admin)
  • CloudWatch metrics (ElastiCache)

Naming Convention

Suggested client name: semantic_kernel_vector_store_client

Pattern: {project}_{purpose}_client

  • semantic_kernel = project name
  • vector_store = purpose (vector store connector)
  • _client = convention (matches Valkey Admin naming pattern)

Metadata

Metadata

Assignees

No one assigned

    Labels

    pythonPull requests for the Python Semantic Kerneltriage

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions