-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
[chore] Move back receiver definitions, make profile embed receiver #11254
[chore] Move back receiver definitions, make profile embed receiver #11254
Conversation
I don't have the context around this change, but this approach is what we've been doing for every other component that needs profiles. cc @mx-psi (who is OOO this week) |
@dmathieu the current implementation is very bad because the public "soon to be stable"
Why? |
In the service, the receiver builder holds a list of receivers: opentelemetry-collector/service/internal/builders/receiver.go Lines 20 to 23 in 4709346
But it also needs to be able to treat it as a profiles receiver, if we wish to create one: Hence the current implementation in main. The full (with profiles) implementation is hidden in internal. The one in the Similarly, we need it in the OTLP receiver, to be able to create the receiver and have it handle profiles: opentelemetry-collector/receiver/otlpreceiver/factory.go Lines 29 to 38 in 2be0dfb
Reverting this would have a much bigger impact that this PR, and would likely require reverting and rethinking most of the profiling work I've been doing those past 3 months. This approach was decided in https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/experimental-profiling.md (#10375) |
@dmathieu look at the PR and you see that it works. I am not sure where all these are coming from. You can see that the service can still create Profiles. PR passes all tests, if you have good test coverage (which I expect you should) everything still works and we don't expose the profiles on a stable package. |
e7cd163
to
fa51ceb
Compare
This is not true, go ahead and check that Update: Even |
All you need to do is to create the factory using |
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
fa51ceb
to
51350b3
Compare
You're right, sorry, it does work. It's unlikely to happen, but with this approach, we also can't have 2 unstable signals at the same time (and use them together). |
I have 2 problems I am looking to solve:
We can, we just need to call that package "receiverexperimental" or something like that instead of the "receiverprofiles".
I think this is a minimal problem in my opinion (we are just looking for things that are not ideal here), since anyway they have to use the "experimental" module anyway. I care way more about our "stable" developer experience than the "experimental" developer experience, if you need experimental it is ok to do more work. |
This is another bad design, see https://www.hyrumslaw.com |
@open-telemetry/collector-approvers please review this, since @dmathieu work is not affected and this is a pure collector design I am sure we can move forward with this solution that has clear advantages vs existing or proposed alternatives:
|
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 solution looks good to me
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #11254 +/- ##
=======================================
Coverage ? 91.37%
=======================================
Files ? 423
Lines ? 20204
Branches ? 0
=======================================
Hits ? 18462
Misses ? 1358
Partials ? 384 ☔ View full report in Codecov by Sentry. |
…pen-telemetry#11254) Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
…open-telemetry#11286) Same as open-telemetry#11254 but for processor Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
…pen-telemetry#11254) Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
…open-telemetry#11286) Same as open-telemetry#11254 but for processor Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
No description provided.