Is your feature request related to a problem? Please describe.
As we're planning the addition of profiles into the collector, we will need to add new interfaces into several packages (consumer, receiver, processor, connector).
Because the profiles signals is experimental, we would like to avoid making changes to those APIs that would be making them unstable.
Describe the solution you'd like
Split each of the packages that have interfaces specific to signals into their own module/package.
We would start with consumer, as that API is the closest to 1.0. But each package that has a signal-specific implementation would be impacted.
We could do this two ways:
- A top-level package per signal, with subpackages per feature:
traces/consumer, traces/receiver.
- A top-level package per feature, with subpackages per signal:
consumer/traces, receiver/traces.
With this change, any new signal added in the future could much more easily implement its own interfaces even though the main packages are stable.
Describe alternatives you've considered
The alternatives could be to:
- Put the new profiles interfaces directly in the existing packages, which may cause API stability issues.
- Create new packages for the experimental profiles packages, and then move them into the main one when they become stable, which would force folks to update their import paths.
Is your feature request related to a problem? Please describe.
As we're planning the addition of profiles into the collector, we will need to add new interfaces into several packages (
consumer,receiver,processor,connector).Because the profiles signals is experimental, we would like to avoid making changes to those APIs that would be making them unstable.
Describe the solution you'd like
Split each of the packages that have interfaces specific to signals into their own module/package.
We would start with
consumer, as that API is the closest to 1.0. But each package that has a signal-specific implementation would be impacted.We could do this two ways:
traces/consumer,traces/receiver.consumer/traces,receiver/traces.With this change, any new signal added in the future could much more easily implement its own interfaces even though the main packages are stable.
Describe alternatives you've considered
The alternatives could be to: