-
Notifications
You must be signed in to change notification settings - Fork 699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v2: Client unary interceptor timeout on v2 branch #330
v2: Client unary interceptor timeout on v2 branch #330
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR! Could you just update the example?
what do you think if we delegate the choice/computation of the timeout through a function in order to have method specific timeout func TimeoutUnaryClientInterceptor(timeoutProvider func(string) time.Duration) grpc.UnaryClientInterceptor {
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
timedCtx, cancel := context.WithTimeout(ctx, timeoutProvider(method))
defer cancel()
return invoker(timedCtx, method, req, reply, cc, opts...)
}
} |
If the user wants method specific timeouts they can just do that when calling an RPC. I think it makes sense to have a per-grpc-client timeout configuration, so lets keep it as is. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another thought; could you implement this in terms of the ClientReportable
interface, like the other interceptors do? CC @bwplotka.
I don't find this way clearer than previous Something similar than type TimeoutUnaryClientReportable struct {
timeout time.Duration
}
func (t *TimeoutUnaryClientReportable) ClientReporter(ctx context.Context, reqProtoOrNil interface{}, typ interceptors.GRPCType, service string, method string) (interceptors.Reporter, context.Context) {
timedCtx, cancel := context.WithTimeout(ctx, t.timeout)
return &TimeoutReporter{cancel: cancel}, timedCtx
}
type TimeoutReporter struct {
cancel context.CancelFunc
}
func (t *TimeoutReporter) PostMsgReceive(replyProto interface{}, err error, recvDuration time.Duration) {
t.cancel()
}
func (t *TimeoutReporter) PostCall(err error, rpcDuration time.Duration) {
}
func (t *TimeoutReporter) PostMsgSend(reqProto interface{}, err error, sendDuration time.Duration) {
} |
I agree this is less clear. What do you think @bwplotka? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if this is really needed, let's double check. If it's then I am fine non reporter version of it - it's quite simple.
func TimeoutUnaryClientInterceptor(timeout time.Duration) grpc.UnaryClientInterceptor { | ||
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { | ||
timedCtx, cancel := context.WithTimeout(ctx, timeout) | ||
defer cancel() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, how this is different to setting timeout on gRPC client side, or passing context with timeout?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this middleware just ensure that all grpc call has a "default timeout".
in other hand i have commit c747443 a fix where the incoming context already has timeout (it will keep it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool: grpc/grpc-go#2130
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Some tests are not working though
log.Fatal(err) | ||
} | ||
|
||
// Initialize your grpc service with connection |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing trailing period on all comments here (:
I am not really fan when test depend on timing |
interceptors/timeout/timeout.go
Outdated
if _, ok := ctx.Deadline(); ok { | ||
return invoker(ctx, method, req, reply, cc, opts...) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is the right design, adding a new context timeout to a context with an existing timeout isn't going to overwrite it, they will just both be active. I think we can remove this.
Yea, ideally we want to remove all time-based tests, it's kind of legacy.
Help wanted (:
…On Thu, 3 Sep 2020 at 11:02, Johan Brandhorst-Satzkorn < ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In interceptors/timeout/timeout.go
<#330 (comment)>
:
> + if _, ok := ctx.Deadline(); ok {
+ return invoker(ctx, method, req, reply, cc, opts...)
+ }
I don't think this is the right design, adding a new context timeout to a
context with an existing timeout isn't going to overwrite it, they will
just both be active. I think we can remove this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#330 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABVA3O4PMNRAMJ6SEECLQQ3SD5SSLANCNFSM4QRNVWLA>
.
|
But the main purpose of this middleware is to deal with time. |
Not sure there's much choice here since we're using |
i agree with you, i am not really fan of doing such things only for testability purpose. But if it stabilize tests suite, i can do a pattern option to customize the |
Nah that is only going to risk users abusing it. Unless @bwplotka has a concrete suggestion I think we need to do a timing test here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sense!
Can you add entry to README.md as well? 🤗
Thanks 💪🏽 Sorry for lag in review! Let's get v2 released!
Tests has to pass as well (: |
Co-authored-by: Johan Brandhorst-Satzkorn <[email protected]>
66b17d6
to
bef9f01
Compare
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
Hi!! |
@googlebot I consent. |
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ultra simple, but great! (: Thanks. LGTM
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/grpc-ecosystem/go-grpc-middleware](https://github.com/grpc-ecosystem/go-grpc-middleware) | `v1.4.0` -> `v2.1.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v1.4.0/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v1.4.0/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>grpc-ecosystem/go-grpc-middleware (github.com/grpc-ecosystem/go-grpc-middleware)</summary> ### [`v2.1.0`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.1.0) [Compare Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.0.1...v2.1.0) #### What's Changed - Support for subsystem in grpc prometheus counter and histogram metrics by [@​rohsaini](https://github.com/rohsaini) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643) - doc: update client interceptors chaining example with grpc functions by [@​dethi](https://github.com/dethi) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669) - adds fields from durationFieldFunc to request/response log entries by [@​vroldanbet](https://github.com/vroldanbet) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670) - add doc for disabling log opts by [@​coleenquadros](https://github.com/coleenquadros) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/680](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/680) - Middleware for determining the real ip of the client by [@​MadsRC](https://github.com/MadsRC) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682) - protovalidate: add option to ignore certain message types by [@​igor-tsiglyar](https://github.com/igor-tsiglyar) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684) - Update README.md by [@​zeroboo](https://github.com/zeroboo) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688) - Fix `InitializeMetrics` signature to allow use with `xds.GRPCServer` by [@​bozaro](https://github.com/bozaro) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689) - Support retriable func condition by [@​tamayika](https://github.com/tamayika) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687) - Extend realip parsing of GRPC peer address to handle IPv6 by [@​surik](https://github.com/surik) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692) - Fix logging Example : log only first field by [@​arckadious](https://github.com/arckadious) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694) - Extent realip interceptors with ip selection based on proxy count and list by [@​surik](https://github.com/surik) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/695](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/695) - Fix for vulnerability CVE-2023-44487 by [@​vkaushik](https://github.com/vkaushik) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696) #### New Contributors - [@​rohsaini](https://github.com/rohsaini) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643) - [@​dethi](https://github.com/dethi) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669) - [@​vroldanbet](https://github.com/vroldanbet) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670) - [@​MadsRC](https://github.com/MadsRC) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682) - [@​igor-tsiglyar](https://github.com/igor-tsiglyar) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684) - [@​zeroboo](https://github.com/zeroboo) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688) - [@​bozaro](https://github.com/bozaro) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689) - [@​tamayika](https://github.com/tamayika) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687) - [@​surik](https://github.com/surik) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692) - [@​arckadious](https://github.com/arckadious) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694) - [@​vkaushik](https://github.com/vkaushik) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696) **Full Changelog**: grpc-ecosystem/go-grpc-middleware@v2.0.1...v2.1.0 ### [`v2.0.1`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.0.1) [Compare Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.0.0...v2.0.1) #### What's Changed - Fix outdated 'make proto' command by [@​takp](https://github.com/takp) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623) - Fix linting errors by [@​takp](https://github.com/takp) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/624](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/624) - Logging: Add missing variadic operator for fields by [@​olivierlemasle](https://github.com/olivierlemasle) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629) - feat: Support extracting fields from CallMeta by [@​fsaintjacques](https://github.com/fsaintjacques) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628) - Fix "make test" and "make lint" by [@​olivierlemasle](https://github.com/olivierlemasle) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/627](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/627) - Do not set timeout for stream initialization by [@​DavyJohnes](https://github.com/DavyJohnes) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645) - Add logging option to disable fields in log entry by [@​coleenquadros](https://github.com/coleenquadros) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631) - Update logging adapter docs by [@​aboryslawski](https://github.com/aboryslawski) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647) #### New Contributors - [@​takp](https://github.com/takp) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623) - [@​olivierlemasle](https://github.com/olivierlemasle) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629) - [@​fsaintjacques](https://github.com/fsaintjacques) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628) - [@​DavyJohnes](https://github.com/DavyJohnes) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645) - [@​coleenquadros](https://github.com/coleenquadros) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631) - [@​aboryslawski](https://github.com/aboryslawski) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647) **Full Changelog**: grpc-ecosystem/go-grpc-middleware@v2.0.0...v2.0.1 ### [`v2.0.0`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.0.0) [Compare Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v1.4.0...v2.0.0) This is the first stable release of the new v2 release branch 🎉 Many of the interceptors have been rewritten from scratch and the project has been upgraded to use the Go Protobuf v2 API. See the project README for details and migration guide. Thanks to all contributors who made this possible! 💪🏽 #### What's Changed - Initial change for v2. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/276](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/276) - Updated README with note that it's under development. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/278](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/278) - Fix typo in field extractor (splices -> slices) ([#​287](https://github.com/grpc-ecosystem/go-grpc-middleware/issues/287)) by [@​bvwells](https://github.com/bvwells) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/289](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/289) - Moved imports to v2; Moved to Go 1.14.2 by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/290](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/290) - Formatted code; Added goimports to Makefile, Renamed pb_testproto to testpb. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/291](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/291) - Fixed providers go modules, examples and consistency. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/292](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/292) - added example for AuthFuncOverride v2 branch by [@​tegk](https://github.com/tegk) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/294](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/294) - Added some description of the Makefile in the contributing.md by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/298](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/298) - v2: Add support for the zerolog logging provider by [@​irridia](https://github.com/irridia) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299) - proto: fix gogoproto import by [@​johanbrandhorst](https://github.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/302](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/302) - Retry dial and connection errors for grpc stream. by [@​kartlee](https://github.com/kartlee) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/308](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/308) - Moved to GH actions; Added lint; Added issue/PR templates. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/296](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/296) - inline localhost certificate into go file by [@​bmon](https://github.com/bmon) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/318](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/318) - Update streaming interceptor example by [@​G07cha](https://github.com/G07cha) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/322](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/322) - Do not stop retrying based on earlier good message from the stream by [@​kartlee](https://github.com/kartlee) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/323](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/323) - test certs - cherry-pick PR325 on v2 by [@​dmitris](https://github.com/dmitris) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/331](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/331) - add all make target, reword instructions by [@​dmitris](https://github.com/dmitris) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/335](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/335) - remove 1.12.x from build config for consistency with master by [@​dmitris](https://github.com/dmitris) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/337](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/337) - \[v2] Fix the special case for jaeger format traceid extraction by [@​nvx](https://github.com/nvx) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/340](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/340) - \[v2] Fix ctxtags TagBasedRequestFieldExtractor extracting from fields in a oneof by [@​nvx](https://github.com/nvx) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/339](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/339) - Request Logging by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/311](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/311) - Bug fix for data race by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/354](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/354) - make ratelimit interface context aware by [@​xinxiao](https://github.com/xinxiao) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367) - Add error param to the decider method of logging middleware by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/372](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/372) - \[v2] Add skip interceptor by [@​XSAM](https://github.com/XSAM) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364) - Chain middleware by [@​drewwells](https://github.com/drewwells) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/385](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/385) - Update travis ci badget to Github actions badge. by [@​drewwells](https://github.com/drewwells) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/384](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/384) - Upgraded proto related deps: grpc and protobuf; removed gogo from core. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/321](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/321) - improve v2 rate-limiter by [@​MalloZup](https://github.com/MalloZup) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380) - Moved to buf; Added buf lint; Fixed ping service to match standards; … by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/383](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/383) - Add timer interface for OpenMetrics(Prometheus) Provider by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/387](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/387) - \[Rate-limit provider]: Add token bucket implementation of rate-limiter by [@​MalloZup](https://github.com/MalloZup) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/386](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/386) - Add OpenMetrics(Prometheus) in the provider module by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/379](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/379) - v2: Client unary interceptor timeout on v2 branch by [@​instabledesign](https://github.com/instabledesign) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330) - add onRetryCallback callback function by [@​shamil](https://github.com/shamil) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405) - v2: validator support for protoc-gen-validate 0.6.0 by [@​danielhochman](https://github.com/danielhochman) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/418](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/418) - v2: Refactor metrics interceptor and fix tests by [@​ash2k](https://github.com/ash2k) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413) - Support customization of timestamp format (v2 branch) by [@​stanhu](https://github.com/stanhu) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/399](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/399) - Fixed misleading comments in the interceptor file by [@​iamrajiv](https://github.com/iamrajiv) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/424](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/424) - v2: Switch from github.com/go-kit/kit to github.com/go-kit/log interfaces by [@​liggitt](https://github.com/liggitt) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/427](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/427) - v2: Add support for the phuslog logging provider by [@​ogimenezb](https://github.com/ogimenezb) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425) - v2:providers/zap: fix caller annotation by [@​jkawamoto](https://github.com/jkawamoto) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/432](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/432) - Added Dependabot by [@​iamrajiv](https://github.com/iamrajiv) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/376](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/376) - Added a Copyright check in the Makefile by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/420](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/420) - Cleanup v2 with some updates by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/419](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/419) - openmetrics: forward server context by [@​amenzhinsky](https://github.com/amenzhinsky) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434) - recovery: change the default behavior by [@​amenzhinsky](https://github.com/amenzhinsky) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/439](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/439) - Add all-validator support by [@​leventeliu](https://github.com/leventeliu) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443) - Remove backoffutils and added the files to retry package by [@​yashrsharma44](https://github.com/yashrsharma44) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/390](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/390) - v2:interceptors/logging: allow to separate request response payload logging by [@​michaljemala](https://github.com/michaljemala) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442) - Removed tags; Simplified interceptor code; Added logging fields editability. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/394](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/394) - InterceptorTestSuite client connection optimize by [@​HUSTtoKTH](https://github.com/HUSTtoKTH) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455) - Remove opentracing from go.mod by [@​jpkrohling](https://github.com/jpkrohling) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477) - Replace two old Go versions with two new ones by [@​jpkrohling](https://github.com/jpkrohling) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/478](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/478) - Move util/metautils to root-level package metadata, fixes [#​392](https://github.com/grpc-ecosystem/go-grpc-middleware/issues/392) by [@​rahulkhairwar](https://github.com/rahulkhairwar) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474) - Remove data race from zerolog provider by [@​ecordell](https://github.com/ecordell) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487) - Update provider/kit by [@​metalmatze](https://github.com/metalmatze) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490) - Refactor tracing interceptor by [@​XSAM](https://github.com/XSAM) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/450](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/450) - Add opentracing provider by [@​XSAM](https://github.com/XSAM) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/492](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/492) - update phuslog to fix typo by [@​ogimenezb](https://github.com/ogimenezb) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/499](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/499) - Added logr as logging Library provider by [@​mcdoker18](https://github.com/mcdoker18) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510) - ✨ new feat: selector middleware by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511) - Add 1.18.x and 1.19.x unit tests by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/513](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/513) - change the doc.go to the latest format by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/512](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/512) - fix provider examples by [@​forsaken628](https://github.com/forsaken628) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529) - docs: add `logging.InjectFields` usage description by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/541](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/541) - Bump golang.org/x/net from 0.0.0-20201021035429-f5854403a974 to 0.7.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537) - v2: All for v2: Exemplars, Cleanup, Docs, Lint, Proto upgrades and more by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/543](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/543) - \[interceptors/validator] feat: add error logging in validator by [@​rohanraj7316](https://github.com/rohanraj7316) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544) - fix auto-generated docs by [@​peczenyj](https://github.com/peczenyj) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548) - fix vulnerability GO-2022-0603 by [@​peczenyj](https://github.com/peczenyj) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/549](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/549) - add support to trace on grpc_logrus.DefaultMessageProducer by [@​peczenyj](https://github.com/peczenyj) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/547](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/547) - Simplified logging middleware; Fields are now "any" type; Moved logging providers to examples only. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/552](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/552) - Removed deciders; Cleaned up validators. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/554](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/554) - Adjustments to README and consistency of callback options. by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/555](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/555) - Merge v2 into main (with -X theirs) by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/556](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/556) - Bump golang.org/x/net from 0.5.0 to 0.7.0 in /providers/prometheus by [@​dependabot](https://github.com/dependabot) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/561](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/561) - Fix overwritten logger in zerolog example by [@​longshine](https://github.com/longshine) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574) - Changed for for mapping fields, different var for logger in zap example by [@​MichalFikejs](https://github.com/MichalFikejs) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581) - cleanup: no cap definition required by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/582](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/582) - providers/prometheus: Add WithHistogramOpts for native histograms by [@​metalmatze](https://github.com/metalmatze) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/584](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/584) - fix: Refactor logger initialization in example_test.go by [@​aimuz](https://github.com/aimuz) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/580](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/580) - Minor code cleanups by [@​ash2k](https://github.com/ash2k) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/586](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/586) - fix prometheus interceptors not converting context errors to gRPC codes by [@​vtermanis](https://github.com/vtermanis) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571) - Update README.md by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/600](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/600) - Update PULL_REQUEST_TEMPLATE.md by [@​bwplotka](https://github.com/bwplotka) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/601](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/601) - Add Client rate limit interceptors 520 by [@​rahulkhairwar](https://github.com/rahulkhairwar) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/599](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/599) - Use default go errors package instead of github.com/pkg/errors by [@​rifkyazizf](https://github.com/rifkyazizf) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608) - fix bug : should drain channel of timer after stop by [@​ikenchina](https://github.com/ikenchina) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612) - feat: add interceptor for bufbuild/protovalidate by [@​gvencadze](https://github.com/gvencadze) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614) - Enhancement: Introduce Option Interface for Future Interceptor Customization by [@​elliotmjackson](https://github.com/elliotmjackson) in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615) #### New Contributors - [@​irridia](https://github.com/irridia) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299) - [@​xinxiao](https://github.com/xinxiao) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367) - [@​XSAM](https://github.com/XSAM) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364) - [@​MalloZup](https://github.com/MalloZup) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380) - [@​instabledesign](https://github.com/instabledesign) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330) - [@​shamil](https://github.com/shamil) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405) - [@​ash2k](https://github.com/ash2k) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413) - [@​ogimenezb](https://github.com/ogimenezb) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425) - [@​amenzhinsky](https://github.com/amenzhinsky) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434) - [@​leventeliu](https://github.com/leventeliu) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443) - [@​michaljemala](https://github.com/michaljemala) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442) - [@​HUSTtoKTH](https://github.com/HUSTtoKTH) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455) - [@​jpkrohling](https://github.com/jpkrohling) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477) - [@​rahulkhairwar](https://github.com/rahulkhairwar) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474) - [@​ecordell](https://github.com/ecordell) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487) - [@​metalmatze](https://github.com/metalmatze) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490) - [@​mcdoker18](https://github.com/mcdoker18) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510) - [@​aimuz](https://github.com/aimuz) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511) - [@​forsaken628](https://github.com/forsaken628) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529) - [@​dependabot](https://github.com/dependabot) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537) - [@​rohanraj7316](https://github.com/rohanraj7316) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544) - [@​peczenyj](https://github.com/peczenyj) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548) - [@​longshine](https://github.com/longshine) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574) - [@​MichalFikejs](https://github.com/MichalFikejs) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581) - [@​vtermanis](https://github.com/vtermanis) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571) - [@​rifkyazizf](https://github.com/rifkyazizf) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608) - [@​ikenchina](https://github.com/ikenchina) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612) - [@​gvencadze](https://github.com/gvencadze) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614) - [@​elliotmjackson](https://github.com/elliotmjackson) made their first contribution in [https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615) **Full Changelog**: grpc-ecosystem/go-grpc-middleware@v1.4.0...v2.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/jaegertracing/jaeger). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19--> --------- Signed-off-by: Mend Renovate <[email protected]> Signed-off-by: Yuri Shkuro <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]>
👋 Hi,
this PR is related to the first one on the v1 #329
It was reworked for the v2 branch