Open madolson opened 5 months ago
Originally reference from https://github.com/redis/redis/issues/12311.
Nit Title: Extended Client Introspection functionality
The default behavior for CLIENT LIST
API is all filters, and with that the response payload can be pretty huge. I think valkey-cli kind of gets stuck. With CLIENT DESCRIBE
we can look to move away from the text format and have RESP format and get paginated response or adding a default COUNT
value to restrict the payload size. I had tried that here https://github.com/redis/redis/pull/11907.
The downside of introducing the new API is maintaining two set of API(s) and no guarantee of administrator(s) of moving to this.
Nit Title: Extended Client Introspection functionality
Old habits die hard.
The default behavior for CLIENT LIST API is all filters, and with that the response payload can be pretty huge. I think valkey-cli kind of gets stuck. With CLIENT DESCRIBE we can look to move away from the text format and have RESP format and get paginated response or adding a default COUNT value to restrict the payload size. I had tried that here https://github.com/redis/redis/pull/11907.
I think you raise a really good point. We could add a pagination functionality by doing client-list based off of ID, and add that to client list. I think we have seen that people generally don't migrate to new commands, so it probably makes more sense to enhanced the ones we have.
@valkey-io/core-team I'm happy to take this issue up if this is an approved change. Please let me know if I can proceed. We would be introducing some new filters to existing COUNT, KILL and LIST sub commands. Also, would like to know if we would want to paginate the results in the current list command?
We want to standardize the way that admin users can describe and interact with the client commands. We are proposing to generalize the filters introduced in CLIENT KILL so that it also works to count and list clients as well.
In the end, we will support the following 4 commands.
The supported filters will be:
In Redis we also discussed adding a new command,
CLIENT DESCRIBE
, will also introduce the notion of selectors. Selectors allow you to scope down the fields you are interested in.