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

[exporters] OTLP Exporter stabilization plan #4585

Open
pichlermarc opened this issue Mar 26, 2024 · 0 comments
Open

[exporters] OTLP Exporter stabilization plan #4585

pichlermarc opened this issue Mar 26, 2024 · 0 comments
Assignees
Labels
needs:refinement This issue needs to be refined/broken apart into sub-issues before implementation type:feature-tracking A feature with sub-issues that need to be addressed

Comments

@pichlermarc
Copy link
Member

Description

The @opentelemetry/exporter-*-otlp-* packages are used to export signal data as OTLP via HTTP or gRPC.

The package may be moved to stable once the below issues are resolved.

Currently the following issues prevent stabilization:

Large API surface:

As the OTLP exporters are one of the most used packages in this repository, we should avoid breaking constructors and constructor options and we should consider them to be de-facto stable.

However, there are parts of the public interface on each variant of the OTLPTraceExporter and OTLPMetricsExporter, which we should remove to allow us more flexibility in adding features and fixing bugs without needing to introduce breaking changes in the future. These are the public properties and methods on the exporter that diverge from the PushMetricExporter, SpanExporter and LogRecordExporter interfaces.

Further, we should also remove exports for all unnecessary utility functions, base-classes and from the @opentelemetry/oltp-*base packages and reduce their API surface as well.

This will be addressed by

Add an exception to spec SDK stability rules to base exporter base and utility packages:

From this repository, we also publish base packages and utility packages that are not intended directly for end-user consumption, such as @opentelemetry/otlp-exporter-base where shared implementations and interfaces reside. We should add a note in the README.md of the package to let users know that these packages

  • are not intended for direct consumption by end-users or vendors/library authors
  • will adhere to SemVer just as other stable packages in this reporitory do, BUT
  • MAY receive major version bumps more frequently than other stable core packages and will not be versioned in lockstep with SDK packages
  • previous major versions will NOT be maintained for the usual one year with bugfix backports and security fixes
    • specifically linking to SDK Support which will not apply to these base packages
    • specifically linking to SDK Stability and mentioning that the herein contained interfaces are NOT considered plugin interfaces as per this specification.

We will, however regularly bump dependencies of these base packages in our exporter packages to ensure that users always receive the bug and security fixes in the latest major version of these packages.

This will be addressed by

  • TBD (issue to come up with a text to add to the readme of these utility packages)
  • TBD (issues to add the text to each base and utility package, once API surface has been reduced, see above)

Prerequisites

@pichlermarc pichlermarc added needs:refinement This issue needs to be refined/broken apart into sub-issues before implementation type:feature-tracking A feature with sub-issues that need to be addressed labels Mar 26, 2024
@pichlermarc pichlermarc added this to the OTLP Exporter GA milestone Mar 26, 2024
@pichlermarc pichlermarc self-assigned this Mar 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs:refinement This issue needs to be refined/broken apart into sub-issues before implementation type:feature-tracking A feature with sub-issues that need to be addressed
Projects
None yet
Development

No branches or pull requests

1 participant