-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Prevent infinite/recursive tracing of gRPC storage #5979
Conversation
ce891d9
to
5ae15ad
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5979 +/- ##
==========================================
- Coverage 96.79% 96.78% -0.02%
==========================================
Files 348 348
Lines 16559 16563 +4
==========================================
+ Hits 16029 16031 +2
- Misses 342 343 +1
- Partials 188 189 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
2754064
to
1f58769
Compare
f35efec
to
1cb3b7a
Compare
fixes: jaegertracing#5971 Signed-off-by: cx <1249843194@qq.com>
1cb3b7a
to
454e742
Compare
// TODO needs to be joined with the metricsFactory | ||
LeveledMeterProvider: func(_ configtelemetry.Level) metric.MeterProvider { | ||
return noopmetric.NewMeterProvider() | ||
}, | ||
} | ||
newClientFn := func(opts ...grpc.DialOption) (conn *grpc.ClientConn, err error) { | ||
newClientFn := func(telSettings component.TelemetrySettings, opts ...grpc.DialOption) (conn *grpc.ClientConn, err error) { |
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.
Please elaborate on this part. In newRemoteStorage()
you never modify telset
when calling newClientFn
twice, so why do you need to pass it vs. how it was passed already here via closure?
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.
can we add tests that confirm that the write methods don't get traces?
<!-- !! Please DELETE this comment before posting. We appreciate your contribution to the Jaeger project! 👋🎉 --> ## Which problem is this PR solving? - Fixes #5971 - Towards #6113 and #5859 ## Description of the changes - This PR fixes an issue where the GRPC remote storage client was provided a tracer which was resulting in an infinite loop of trace generation. This infinite loop would happen when we would try to write a trace to storage which would generate a new trace that needed to be written and so on. This PR provides a fix for this by using a noop tracer for the writer clients so that we do not generate traces on the write paths but still do so when reading. - This is likely just a temporary fix and we'll want to monitor open-telemetry/opentelemetry-collector#10663 for a better long-term fix. ## How was this change tested? - Added the healthcheck endpoint which was previously failing in #6113. ## Checklist - [x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [x] I have signed all commits - [x] I have added unit tests for the new functionality - [x] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` ## Co-Authors This PR is a continuation of #5979 Co-authored-by: cx <1249843194@qq.com> --------- Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
implemented in #6125 |
fixes: #5971
I'm not sure if this is reasonable, so please let me know if there are any issues.