-
Notifications
You must be signed in to change notification settings - Fork 83
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
Manager
API does not match singleton design
#1219
Comments
Additionally, from #1218:
|
We have this check when opentelemetry-go-instrumentation/instrumentation.go Lines 151 to 153 in 098f594
So at least for the current implementation, it prevents from Run being called more than once (so maybe it should not be classified as a bug but as a feature request) Regarding future multi-process support: do auto-instrumentations for other languages contain this kind of support or is it out of scope for them? (i.e detecting all the relevant processes for the language, filtering the processes the user wants, and managing the state for each process) - I guess I'm wondering whether it should be in the scope of this repo. If the answer is yes, then maybe the If the answer is no, we can keep the current structure and a higher-level implementation can make use of multiple |
The
Manager
is designed in such a way that it expectsRun
is only ever called once. However, it is a method on theManager
and can be called multiple times (i.e. multi-process instrumentation).opentelemetry-go-instrumentation/internal/pkg/instrumentation/manager.go
Lines 313 to 315 in 098f594
Run
s will overwrite the config with the initial config:opentelemetry-go-instrumentation/internal/pkg/instrumentation/manager.go
Line 260 in 098f594
opentelemetry-go-instrumentation/internal/pkg/instrumentation/manager.go
Line 274 in 098f594
ConfigLoop
of oneRun
will receive updates while another will not due to the lack of channel multiplexing:opentelemetry-go-instrumentation/internal/pkg/instrumentation/manager.go
Lines 231 to 249 in 098f594
There seems a strong need to refactor this type. Ideally, the refactored code will have independent
Run
functionality or unify so there can only ever be one "Run".The text was updated successfully, but these errors were encountered: