Decide how to account for Redis COMMAND requests
The redis COMMAND
command lists all commands and their interface specifications. The redis clients run this once during initialization and cache the result.
This command is relatively slow but gets run just once per client connection.
It impacts apdex during deployments because many clients run it around the same time.
Some ideas:
- We could exclude it from the redis apdex calculation. If it gets run before the client starts handling its first request, then its duration would have no impact on the client side (e.g. apdex for
web
,api
, etc.), which may help justify leaving it out of the redis apdex too. It does cost redis compute time, but if it's not a user-impacting call, it may be fair to let apdex exclude it. - Spread the
COMMAND
calls among all nodes, rather than just the first node in the client's node list. This is essentially the same argument as wanting to spread the initial connection burst among nodes. It would require patchingredis-rb
. Doing so may solve both problems.