This PR introduce hooks. These hooks hook sending requests and receiving responses.
Motivation
I am implementing an instrumentation of OpenTelemetry for Hedis. First I wrapped the Hedis functions to record for tracing, but it cause a lot of type mismatch because the original client and the wrappers have different types of course. So I want to use hooks to avoid this inconvenience.
Changes
ConnectInfo has a new field connectHooks
Hooks type is introduced
Currently there are five types of hooks:
sendRequest
sendPubSub
callback
send
receive
sendRequest is called when a command is being sent. sendPubSub is called when a Pub/Sub message is being send. callback is called when a reaction to a Pub/Sub message is being called after receiving its message. send and receive are low-level hooks
This PR introduce hooks. These hooks hook sending requests and receiving responses.
Motivation
I am implementing an instrumentation of OpenTelemetry for Hedis. First I wrapped the Hedis functions to record for tracing, but it cause a lot of type mismatch because the original client and the wrappers have different types of course. So I want to use hooks to avoid this inconvenience.
Changes
ConnectInfo
has a new fieldconnectHooks
Hooks
type is introducedCurrently there are five types of hooks:
sendRequest
sendPubSub
callback
send
receive
sendRequest
is called when a command is being sent.sendPubSub
is called when a Pub/Sub message is being send.callback
is called when a reaction to a Pub/Sub message is being called after receiving its message.send
andreceive
are low-level hooksNotes
A WIP implementation of the instrumentation of OpenTelemetry for Hedis is https://github.com/herp-inc/hs-opentelemetry/pull/15/.