diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dc415f0dbd..f54b01b01f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,8 @@ release. - Declarative configuration: add links between SDK extension plugins and corresponding declarative config types. ([#4802](https://github.com/open-telemetry/opentelemetry-specification/pull/4802)) +- Declarative configuration: clarify Registry ComponentProvider `type` parameter + ([#4799](https://github.com/open-telemetry/opentelemetry-specification/pull/4799)) ### Common diff --git a/specification/configuration/sdk.md b/specification/configuration/sdk.md index cb4df306aa6..296cbd13810 100644 --- a/specification/configuration/sdk.md +++ b/specification/configuration/sdk.md @@ -339,8 +339,7 @@ as `ComponentProvider`s. **Parameters:** * `component_provider` - The `ComponentProvider`. -* `type` - The type of plugin interface it provides (e.g. SpanExporter, Sampler, - etc). +* `type` - The type of plugin interface it provides. * `name` - The name used to identify the type of component. This is used in [configuration model](./data-model.md) to specify that the corresponding `component_provider` is to provide the component. @@ -348,6 +347,11 @@ as `ComponentProvider`s. The `type` and `name` comprise a unique key. Register MUST return an error if it is called multiple times with the same `type` and `name` combination. +SDKs SHOULD represent `type` in a manner that is idiomatic for their language. +For example, a class literal, an enumeration, or similar. +See [supported SDK extension plugins](#sdk-extension-components) for the set of +supported `type` values. + ### Examples #### Via configuration API