[exporters] OTLP Exporter stabilization plan #4585
Labels
needs:refinement
This issue needs to be refined/broken apart into sub-issues before implementation
never-stale
type:feature-tracking
A feature with sub-issues that need to be addressed
Milestone
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
andOTLPMetricsExporter
, 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 thePushMetricExporter
,SpanExporter
andLogRecordExporter
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
Bugs that are inherent in the design of the exporters
The OTLP exporters also feature some bugs that are a result in the design of the exporters. One of these examples is that we export differently named types for Browser and Node.js that also have different public interfaces. To be able to release the exporters as stable, we need to ensure that we rectify these issues, otherwise we will only be able to fix them in the next major version.
This will be addressed by fixing
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 theREADME.md
of the package to let users know that these packagesWe 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
Prerequisites
The text was updated successfully, but these errors were encountered: