Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 herp-inc/hs-opentelemetry#15.