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

Remove dependency to all exporters in SDK #4150

Open
Flarna opened this issue Sep 15, 2023 · 6 comments
Open

Remove dependency to all exporters in SDK #4150

Flarna opened this issue Sep 15, 2023 · 6 comments

Comments

@Flarna
Copy link
Member

Flarna commented Sep 15, 2023

Followup on #4145

I think we should remove the dependency to all exporters from SDK similar as it was done for Jaeger in #4049.

The OTLP exporters include quite some transitive dependencies like grpc which are often not needed. This results in unneeded long installation time, unneeded high disc size/bundle size.
There might be more like longer startup time, higher memory consumption just because unneeded stuff is read and code is held in memory.

@pichlermarc pichlermarc added feature-request up-for-grabs Good for taking. Extra help will be provided by maintainers pkg:sdk-node labels Sep 20, 2023
@pichlermarc
Copy link
Member

Agreed. I think we should also first provide a heads-up notice one release prior, as was done in #4068

@dyladan
Copy link
Member

dyladan commented Sep 27, 2023

How would the environment variables then work? Do we make these exporters optional peer dependencies?

@pichlermarc
Copy link
Member

How would the environment variables then work? Do we make these exporters optional peer dependencies?

with the Jaeger exporter, we currently lazy-require it. we could do something similar with the otlp exporters. IIRC npm 7+ installs optional peer dependencies by default when installing the package, so that might not be an option.

@Flarna
Copy link
Member Author

Flarna commented Sep 27, 2023

if someone sets an env var to use foo exporter which is not installed it will fail.
If someone would like to switch without changes in package.json between x exporters all of the need be installed.
But why should we force people to install a lot exporters (including 3rd party deps like grpc) if they never intend to use it?

I assume config via env should be anyway that generic that it works with any exporter, not just a limited list of predefined ones.

Copy link

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@github-actions github-actions bot added the stale label Nov 27, 2023
@Flarna Flarna removed the stale label Nov 27, 2023
@pichlermarc pichlermarc removed the up-for-grabs Good for taking. Extra help will be provided by maintainers label Oct 15, 2024
@pichlermarc
Copy link
Member

I'm removing up-for-grabs because we have to do some wider considerations about how we want to deal with these things in the future, not only related to exporters but also instrumentations, but also resource detectors and propagators.

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

No branches or pull requests

3 participants