diff --git a/CHANGELOG.md b/CHANGELOG.md index 789345bdc9c..ae5cd663d22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ release. ([#3627](https://github.com/open-telemetry/opentelemetry-specification/pull/3627)) - Mark Metric No-Op API as stable. ([#3642](https://github.com/open-telemetry/opentelemetry-specification/pull/3642)) +- MetricProducers are provided as config to MetricReaders instead of through a RegisterProducer operation. + ([#3613](https://github.com/open-telemetry/opentelemetry-specification/pull/3613)) ### Logs diff --git a/specification/metrics/sdk.md b/specification/metrics/sdk.md index 98dfa5deff0..580b90cfd71 100644 --- a/specification/metrics/sdk.md +++ b/specification/metrics/sdk.md @@ -59,7 +59,6 @@ linkTitle: SDK + [AlignedHistogramBucketExemplarReservoir](#alignedhistogrambucketexemplarreservoir) - [MetricReader](#metricreader) * [MetricReader operations](#metricreader-operations) - + [RegisterProducer(metricProducer)](#registerproducermetricproducer) + [Collect](#collect) + [Shutdown](#shutdown-1) * [Periodic exporting MetricReader](#periodic-exporting-metricreader) @@ -1047,6 +1046,7 @@ SHOULD provide at least the following: * The default output `aggregation` (optional), a function of instrument kind. If not configured, the [default aggregation](#default-aggregation) SHOULD be used. * The default output `temporality` (optional), a function of instrument kind. If not configured, the Cumulative temporality SHOULD be used. * **Status**: [Experimental](../document-status.md) - The default aggregation cardinality limit to use, a function of instrument kind. If not configured, a default value of 2000 SHOULD be used. +* **Status**: [Experimental](../document-status.md) - Zero of more [MetricProducer](#metricproducer)s (optional) to collect metrics from in addition to metrics from the SDK. The [MetricReader.Collect](#collect) method allows general-purpose `MetricExporter` instances to explicitly initiate collection, commonly @@ -1103,21 +1103,6 @@ functions. ### MetricReader operations -#### RegisterProducer(metricProducer) - -**Status**: [Experimental](../document-status.md) - -RegisterProducer causes the MetricReader to use the provided -[MetricProducer](#metricproducer) as a source of aggregated metric data in -subsequent invocations of Collect. RegisterProducer is expected to be called -during initialization, but MAY be invoked later. Multiple registrations -of the same MetricProducer MAY result in duplicate metric data being collected. - -If the [MeterProvider](#meterprovider) is an instance of -[MetricProducer](#metricproducer), this MAY be used to register the -MeterProvider, but MUST NOT allow multiple [MeterProviders](#meterprovider) -to be registered with the same MetricReader. - #### Collect Collects the metrics from the SDK and any registered