Skip to content
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

Split components into their own modules #5992

Closed
11 tasks done
jpkrohling opened this issue Aug 29, 2022 · 5 comments
Closed
11 tasks done

Split components into their own modules #5992

jpkrohling opened this issue Aug 29, 2022 · 5 comments
Assignees

Comments

@jpkrohling
Copy link
Member

jpkrohling commented Aug 29, 2022

Depends on #5991.

On August 10, during the SIG meeting, we agreed on splitting components into modules, such as the OTLP Exporter and Receiver. This should be done after the changes that would be part of #5991, so we can take advantage of the tooling.

List of modules, from @bogdandrutu's comment:

Migration instructions

As part of splitting these components into their own packages, users of these components will need to modify their Collector builder configuration to use gomod directly, the following:

exporters:
  - import: go.opentelemetry.io/collector/exporter/loggingexporter
    gomod: go.opentelemetry.io/collector v0.63.0

will become:

exporters:
  - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.63.0
@jpkrohling jpkrohling self-assigned this Aug 29, 2022
@bogdandrutu
Copy link
Member

bogdandrutu commented Sep 15, 2022

Here is a first take on this:

  • pdata
  • confmap
  • consumer, I think current client should be merged into the consumer. Since the client information (the info that we add about connection/request) is consumed by the Consumers (Processor/Exporter are all consumers).
  • component. One question is if we want to have this package OR move everything into go.opentelemetry.io/collector/CMP (where CMP is one of receiver/processor/exporter/extension).
  • processor/* in each individual package. The processorhelper may be embedded into component maybe? Otherwise maybe a better name?
  • exporter/* in each individual package. Not sure yet what to do with exporterhelper
  • receiver/* in each individual package. The current "scraperrelated packages I would move them into ascraper/` top directory and package.
  • extension/* in each individual package.
  • For service I would do Restructure packages from current "service" package #5564

I think these are enough things to think about, and start working on.

@jpkrohling
Copy link
Member Author

Thanks for this list! I'll start working on this once we have a go.work for this repo.

@jpkrohling
Copy link
Member Author

Now that we have a decision about go work, I'll start the split of this into their own modules.

@codeboten
Copy link
Contributor

One question that comes to mind when looking at this list, are we planning on releasing these packages independently in the future? If so we'll need to figure out what that looks like as well.

It would be great to only release packages with changed code.

@bryan-aguilar
Copy link
Contributor

I can take the action item to add crosslink support to this repository in the same way that it is implemented in contrib. Should be a quick™ and can make inserting those replace statements a bit easier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants