Skip to content

Redis client interceptor does not intercept pipelined commands

I noticed that pipelined calls (including MULTI with a block) do not show up in the performance bar. They also don't get added to the redis_* numbers in our logs.

Looking at the code, we intercept the #call method here: https://gitlab.com/gitlab-org/gitlab/-/blob/dd1e70d3676891025534dc4a1e89ca9383178fe7/lib/gitlab/instrumentation/redis_interceptor.rb#L16.

It looks like these go through #call_pipeline instead of #call:

This can result to under reporting of Redis call counts and durations.

Edited by Heinrich Lee Yu