Specificationv1.56.0
since v1.55.09 breaking46 notable128 editorial
From the upstream release notes
- Align environment variable context propagation name restrictions with POSIX.1-2024
- Decouple the responsibilities of the environment variable propagation carrier.
- Remove misleading implementation approach the environment variable propagation.
- Change Environment Variables as Context Propagation Carriers document status to Beta.
- Stabilize Tracer enabled operation
- Stabilize AlwaysRecord sampler.
- Add development maxExportBatchSize parameter to Periodic exporting MetricReader.
- Add event to span event bridge.
- Clarify that a Resource describes the observed entity, not the component
- Define merge algorithm.
Breaking9
Requirements added to, removed from, or restrengthened in a document marked Stable.
- new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: The processor MUST bridge a
LogRecordto a span event if and only if all of the following conditions are met: - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: If any of these conditions is not met, the processor MUST do nothing.
- new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: When a
LogRecordis bridged, the processor MUST add exactly one span event with the following mapping: - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: the span event name MUST be the
LogRecord's Event Name. - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: if the
LogRecordhas a Timestamp set, it MUST be used as the span event timestamp. - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: Otherwise, if the
LogRecordhas an ObservedTimestamp set, it MUST be used as the span event timestamp. - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST added: all
LogRecordAttributes MUST be copied to the span event as span event attributes. - new rulerequirementlogs/sdk.md#event-to-span-event-bridgeMUST NOT added: Note that bridging a
LogRecordto a span event MUST NOT prevent thatLogRecordfrom continuing through the normal log processing pipeline. - new rulerequirementlogs/sdk.md#loggerconfigMUST NOT added: If
trace_basedisfalse, log records MUST NOT be affected because of this parameter.
Notable46
- rule droppedrequirementcompatibility/opentracing.md#abstractMUST removed: This functionality MUST be defined in its own OpenTracing Shim Layer, not in the OpenTracing nor the OpenTelemetry API or SDK.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1MUST removed: Exemplars on other OpenTelemetry data points MUST be dropped.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1MUST removed: For Prometheus pull endpoints, only a single exemplar is able to be added to each bucket, so the largest exemplar from each bucket MUST be used, if attaching exemplars.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1MUST removed: If no exemplars exist on a bucket, the highest exemplar from a lower bucket MUST be used, even though it is a duplicate of another bucket's exemplar.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1MUST removed: Prometheus Exemplars MUST use the
traceidandspanidkeys for the trace and span IDs, respectively. - rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#histogramsMUST removed: Multiple Prometheus histogram metrics MUST be merged together into a single OTLP Histogram:
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#metric-metadata-1MUST NOT removed: Brackets MUST NOT be included in the resulting unit.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#start-timeMUST removed: When no
createdmetric is available, conversion MUST follow Cumulative streams: handling unknown start time by default. - rule droppedrequirementcontext/env-carriers.md#case-sensitivityMUST removed: For maximum compatibility, implementations MUST:
- rule droppedrequirementcontext/env-carriers.md#name-restrictionsMUST NOT removed: MUST NOT include characters forbidden in environment variables per platform-specific restrictions
- rule droppedrequirementcontext/env-carriers.md#size-limitationsMUST removed: When truncation is required due to size limitations, implementations MUST truncate whole entries.
- rule droppedrequirementcontext/env-carriers.md#size-limitationsMUST removed: Implementers MUST document how graceful truncation is handled and SHOULD provide the link to the corresponding specification (e.g., [W3C tracestate Truncation guidance][w3c-truncation]).
- rule droppedrequirementcontext/env-carriers.md#value-restrictionsMUST removed: MUST only use characters that are valid in HTTP header fields per RFC 9110
- rule droppedrequirementcontext/env-carriers.md#value-restrictionsMUST removed: MUST follow the format requirements of the specific propagation protocol (e.g., W3C Trace Context specification for
TRACEPARENTvalues) - strengthrequirementcompatibility/prometheus_and_openmetrics.md#metric-metadata-1SHOULD strengthened to MUST: The Unit of an OTLP metric point MUST be converted from the UCUM unit to the equivalent unit word in Prometheus if it is included in the table in Metric Metadata above.
- stabilitydocumentcompatibility/opentracing.mdStatus changed from Stable to Deprecated.
- stabilitydocumentcontext/env-carriers.mdStatus changed from Alpha to Beta.
- stabilitydocumentsdk_exporters/prometheus.mdStatus changed from Development to Mixed.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#countersMUST added: Exemplars on the Prometheus Counter Sample MUST be converted to OpenTelemetry Exemplars on the OpenTelemetry Sum data point following the rules in Exemplars.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplar-conversionMUST added: When an exemplar is converted per the metric-type-specific sections above, the OpenTelemetry Exemplar MUST be converted to a Prometheus exemplar if the Prometheus (push or pull) protocol being used supports them, as fol...
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplar-conversionMUST added: If present, the OpenTelemetry Exemplar's Trace ID and Span ID MUST be added as Exemplar labels using the
traceidandspanidkeys, respectively. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplar-conversionMUST added: These labels MUST take precedence over labels from
filtered_attributesin cases where there is a key collision. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplar-conversionMUST added:
filtered_attributesMUST be added as labels on the Prometheus exemplar, unless they would exceed the Prometheus protocol's exemplar limits. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplarsMUST added: Prometheus Exemplars MUST be converted to OpenTelemetry Exemplars as follows:
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#exemplarsMUST added: All labels other than
traceidandspanidMUST be added to the OpenTelemetry exemplar as filtered attributes. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#histogramsMUST added: In the text format, Prometheus histograms buckets, count and sum are sent as separate samples and they MUST be merged together when forming an OTLP Histogram.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#histogramsMUST added: Exemplars on the Prometheus Histogram Sample MUST be converted to OpenTelemetry Exemplars on the OpenTelemetry Histogram data point following the rules in Exemplars.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#metric-metadataMUST added: The unit MUST be translated from words to the UCUM abbreviation if it is in the following set of commonly-used units:
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#metric-metadata-1MUST added: Portions of the Unit within brackets (e.g. {packet}) MUST be dropped.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#metric-metadata-1MUST added: Units defined as rates over time (e.g. "m/s") MUST be converted to words (e.g. "meterspersecond").
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#native-histogramsMUST added: Overflow buckets MUST be dropped and not counted in the overall
Count. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#native-histogramsMUST added: A Native histogram with custom buckets (NHCB) schema (i.e. schema -53) and which are of the integer and counter flavor MUST be converted to an OTLP Histogram as follows:
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#native-histogramsMUST added: Exemplars on the Prometheus Native Histogram Sample MUST be converted to OpenTelemetry Exemplars on the OpenTelemetry Exponential Histogram data point following the rules in Exemplars.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#sumsMUST added: If Sum is converted to a Prometheus Counter, then
ExemplarsMUST be converted as described in the Exemplar Conversion section. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#timestampsMUST added: If present, the Prometheus Metric Sample's Start timestamp (also referred to as the Created timestamp) MUST be converted to the Start timestamp of the OTLP data point.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#timestampsMUST added: If present, the Prometheus Metric Sample's Timestamp MUST be converted to the Timestamp of the OTLP data point.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#timestampsMUST added: For metrics scraped from a Prometheus endpoint without an explicit timestamp, the timestamp of the OTLP data point MUST be set to the time of the scrape.
- new rulerequirementcontext/env-carriers.md#key-name-normalizationMUST added: MUST be normalized by:
- new rulerequirementcontext/env-carriers.md#propagator-mechanismsMUST NOT added: The environment variable carrier (or propagator wrapper) MUST be format-agnostic and MUST treat values as opaque strings and MUST NOT apply propagation-format-specific logic such as validating, parsing values, or enforc...
- new rulerequiremententities/data-model.md#merging-of-entitiesMUST added: This means both Entities MUST have the same identity attribute keys and for each key, the values of the key MUST be the same.
- new rulerequirementlogs/sdk.md#built-in-processorsSHOULD added: Additional processors defined in this document SHOULD be provided by SDK packages.
- new rulerequirementlogs/sdk.md#event-to-span-event-bridgeSHOULD added: This processor SHOULD be provided by SDK.
- new rulerequirementmetrics/sdk.md#periodic-exporting-metricreaderMUST added: Status: Development - When
maxExportBatchSizeis configured, the reader MUST ensure no batch provided toExportexceeds themaxExportBatchSizeby splitting the batch of metric data points into smaller batches. - new rulerequirementmetrics/sdk.md#periodic-exporting-metricreaderMUST added: The initial batch of metric data MUST be split into as many "full" batches of size
maxExportBatchSizeas possible -- even if this splits up data points that belong to the same metric into different batches. - new rulerequirementmetrics/sdk.md#periodic-exporting-metricreaderMUST added: The reader MUST ensure all metric data points from a single
Collect()are provided toExportbefore metric data points from a subsequentCollect()so that metric points are sent in-order. - new rulerequirementmetrics/sdk.md#periodic-exporting-metricreaderMUST NOT added: The reader MUST NOT combine metrics from different
Collect()calls into the same batch provided toExport.
Editorial128
- removedsectioncompatibility/prometheus_and_openmetrics.md#exemplars-1Section "Exemplars" removed.
- removedsectioncompatibility/prometheus_and_openmetrics.md#start-timeSection "Start Time" removed.
- removedsectioncontext/env-carriers.md#approach-1-providing-a-dedicated-environmentcontextpropagatorSection "Approach 1: Providing a dedicated
EnvironmentContextPropagator" removed. - removedsectioncontext/env-carriers.md#approach-2-using-the-carriers-directly-through-setters-and-gettersSection "Approach 2: Using the carriers directly through
SettersandGetters" removed. - removedsectioncontext/env-carriers.md#case-sensitivitySection "Case Sensitivity" removed.
- removedsectioncontext/env-carriers.md#common-behaviorsSection "Common Behaviors" removed.
- removedsectioncontext/env-carriers.md#environment-variable-namesSection "Environment Variable Names" removed.
- removedsectioncontext/env-carriers.md#format-restrictionsSection "Format Restrictions" removed.
- removedsectioncontext/env-carriers.md#name-restrictionsSection "Name Restrictions" removed.
- removedsectioncontext/env-carriers.md#size-limitationsSection "Size Limitations" removed.
- removedsectioncontext/env-carriers.md#value-restrictionsSection "Value Restrictions" removed.
- removedsectionspecification/performance.md#tradeoff-between-non-blocking-and-memory-consumptionSection "Tradeoff between non-blocking and memory consumption" removed.
- removedsectiontrace/tracestate-handling.md#pre-defined-opentelemetry-sub-keysSection "Pre-defined OpenTelemetry sub-keys" removed.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplarsSHOULD removed: Exemplars on histogram buckets SHOULD be converted to exemplars on OpenTelemetry histograms.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplarsSHOULD removed: Exemplars on counter metric points SHOULD be converted to exemplars on OpenTelemetry sums.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplarsSHOULD removed: The Trace ID and Span ID SHOULD be retrieved from the
traceidandspanidlabel keys, respectively. - rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1SHOULD removed: Exemplars on OpenTelemetry Histograms and Monotonic Sums SHOULD be converted to Prometheus exemplars.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#exemplars-1SHOULD removed: For Prometheus Remote Write exporters, multiple exemplars are able to be added to each bucket, so all exemplars SHOULD be converted.
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#metric-metadataSHOULD removed: The unit SHOULD be translated from Prometheus conventions to OpenTelemetry conventions by:
- rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#start-timeSHOULD removed: When converting Prometheus Counters to OTLP, conversion SHOULD use
createdwhere available. - rule droppedrequirementcompatibility/prometheus_and_openmetrics.md#start-timeMAY removed: Conversion MAY offer configuration, disabled by default, which allows using the
processstarttimesecondsmetric to provide the start time. - rule droppedrequirementcontext/env-carriers.md#environment-variable-namesRECOMMENDED removed: It is RECOMMENDED to use the W3C Trace Context and W3C Baggage specifications mapped to environment variable names for consistent context propagation.
- rule droppedrequirementcontext/env-carriers.md#environment-variable-namesSHOULD removed: When using the W3C Trace Context and Baggage propagators with environment variables, the following translated standard environment variable names SHOULD be used:
- rule droppedrequirementcontext/env-carriers.md#environment-variable-namesSHOULD removed: Implementations MAY support additional propagation formats and SHOULD provide configuration options to override the default environment variable.
- rule droppedrequirementcontext/env-carriers.md#name-restrictionsSHOULD removed: SHOULD use uppercase letters, digits, and underscores for maximum cross-platform compatibility
- rule droppedrequirementcontext/env-carriers.md#name-restrictionsSHOULD removed: SHOULD follow naming conventions that align with the propagation format specification they're implementing (e.g.,
TRACEPARENTfor W3C trace context) - rule droppedrequirementcontext/env-carriers.md#size-limitationsSHOULD removed: Implementations SHOULD follow platform-specific environment variable size limitations:
- rule droppedrequirementcontext/env-carriers.md#size-limitationsSHOULD removed: Truncation SHOULD start at the end of the entry list.
- rule droppedrequirementcontext/env-carriers.md#value-restrictionsSHOULD NOT removed: SHOULD NOT contain sensitive information
- new rulerequirementcompatibility/opentracing.md#opentracing-compatibilityMAY added: > [!NOTE] > OpenTracing compatibility requirements are deprecated. > Existing OpenTracing shims MAY continue to be supported for backwards > compatibility, but implementing new OpenTracing compatibility is not required ...
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#gauges-1SHOULD added: Exemplars on OpenTelemetry Gauges SHOULD be dropped.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#histograms-1SHOULD added: If the Prometheus protocol only supports a single exemplar per-bucket, the latest exemplar that falls into each bucket SHOULD be converted.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#summaries-1SHOULD added: Exemplars on OpenTelemetry Summaries SHOULD be dropped.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#sumsSHOULD added: Otherwise,
ExemplarsSHOULD be dropped. - new rulerequirementcompatibility/prometheus_and_openmetrics.md#sumsSHOULD added: If the Prometheus protocol only supports a single exemplar on the Counter sample, the latest exemplar SHOULD be converted.
- new rulerequirementcompatibility/prometheus_and_openmetrics.md#timestampsSHOULD added: If no start timestamp is present, the start time of the OTLP data point SHOULD be left unset.
- new rulerequiremententities/data-model.md#merging-of-entitiesMAY added: Entities MAY be merged if and only if their types are the same, their identity attributes are exactly the same AND their schema_url is the same.
- new rulerequiremententities/data-model.md#merging-of-entitiesSHOULD added: Note: If Entities have different
schema_urls, they SHOULD be converted to the same schema version (if possible) before attempting a merge. - new rulerequirementmetrics/sdk.md#forceflush-1SHOULD added:
ForceFlushMAY skipExport(batch)calls if the timeout is already expired, but SHOULD still callForceFlush()on the configured Push Metric Exporter even if the timeout has passed. - new rulerequirementresource/data-model.md#merging-resourcesSHOULD NOT added: SDKs SHOULD NOT update their merge algorithm until full Entity SDK support is provided.
- new rulerequirementresource/data-model.md#merging-resourcesSHOULD added: As such, a merge SHOULD preserve any identity that already existed on a Resource while adding in new identifying information or descriptive attributes.
- rewordedrequirementcompatibility/prometheus_and_openmetrics.md#exemplarsMUST reworded: If present, the timestamp MUST be used as the OpenTelemetry exemplar's timestamp.
- rewordedrequirementcompatibility/prometheus_and_openmetrics.md#exemplarsMUST reworded: If present, and if the values are valid Trace and Span IDs, the
traceidandspanidlabels MUST be converted to the OpenTelemetry Exemplar's Trace ID and Span ID, respectively. - rewordedrequirementcompatibility/prometheus_and_openmetrics.md#metric-attributesSHOULD reworded: Discouraged characters SHOULD be replaced with the `` character.
- rewordedrequirementcompatibility/prometheus_and_openmetrics.md#metric-attributesMUST reworded: In such cases, the values MUST be concatenated together, separated by
;, and ordered by the lexicographical order of the original keys. - rewordedrequirementcompatibility/prometheus_and_openmetrics.md#metric-metadataSHOULD NOT reworded: The name SHOULD NOT be altered.
- rewordedrequirementcompatibility/prometheus_and_openmetrics.md#metric-metadata-1MUST NOT reworded: Prometheus Pull exporters for OpenTelemetry metric data MUST NOT allow duplicate UNIT, HELP, or TYPE comments for the same metric name to be returned in a single scrape of the Prometheus endpoint.
- rewordedrequirementcompatibility/prometheus_and_openmetrics.md#native-histogramsMUST reworded: Native Histograms with
Schemaoutside of the range [-4, 8] and not equal to -53 MUST be dropped. - rewordedrequirementconfiguration/sdk.md#createMUST reworded: When encountering a reference to an SDK plugin component which is not built-in to the SDK, Create MUST resolve the component using Create Component of the
PluginComponentProviderof the correspondi... - rewordedrequirementconfiguration/sdk.md#parseMUST reworded: When encountering a reference to a SDK extension component which is not built-in to the SDK, Parse MUST resolve corresponding configuration to a generic ConfigProperties representation as described i...
- rewordedrequirementcontext/api-propagators.md#textmap-propagatorMUST reworded: In order to increase compatibility, the key-value pairs MUST only consist of US-ASCII characters that make up valid HTTP header fields as per RFC 9110.
- rewordedrequirementspecification/error-handling.md#basic-error-handling-principlesMUST NOT reworded: OpenTelemetry implementations MUST NOT throw unhandled exceptions at runtime.
- rewordedrequirementspecification/error-handling.md#basic-error-handling-principlesMUST NOT reworded: The API or SDK MAY fail fast and cause the application to fail on initialization, e.g. because of a bad user config or environment, but MUST NOT cause the application to fail later at runtime, e.g. d...
- rewordedrequirementmetrics/data-model.md#exponentialhistogram-consumer-recommendationsSHOULD reworded: Consumers SHOULD reject ExponentialHistogram data with
scaleand bucket indexes that overflow or underflow this representation. - rewordedrequirementmetrics/sdk.md#forceflush-1SHOULD reworded:
ForceFlushSHOULD collect metrics, split into batches if necessary, callExport(batch)on each batch andForceFlush()on the configured Push Metric Exporter. - rewordedrequirementresource/README.md#overviewMUST reworded: It MUST identify the observed entity for which telemetry is being produced.
- rewordedrequirementspecification/versioning-and-stability.md#contrib-stabilitySHOULD reworded: Public portions of contrib packages (constructors, configuration, interfaces) SHOULD remain backward compatible.
- rewordedrequirementspecification/versioning-and-stability.md#extending-apisdk-abstractionsSHOULD reworded: If this backward compatible addition of methods to interfaces is not possible for a language, the language maintainers SHOULD still implement the addition using backwards-compatible workarounds witho...
- rewordedrequirementspecification/versioning-and-stability.md#sdk-stabilityMUST reworded: Public portions of SDK packages MUST remain backward compatible.
- rewordedrequirementspecification/versioning-and-stability.md#versioning-and-stability-for-opentelemetry-clientsMUST reworded: This document MUST be placed in the root of each repository and named
VERSIONINGorVERSIONING.md. - movedrequirementcompatibility/prometheus_and_openmetrics.md#exemplar-conversionMUST moved here from "exemplars-1": Timestamps MUST be added as timestamps on the Prometheus exemplar.
- movedrequirementsdk_exporters/prometheus.md#client-librariesSHOULD moved here from "metrics-exporter---prometheus": A Prometheus Exporter SHOULD use Prometheus client libraries for serving Prometheus metrics.
- movedrequirementsdk_exporters/prometheus.md#client-librariesSHOULD moved here from "metrics-exporter---prometheus": If a Prometheus client library is used, the OpenTelemetry Prometheus Exporter SHOULD be modeled as a custom Collector so it can be used in conjunction with existing Prometheus instrumentation.
- movedrequirementsdk_exporters/prometheus.md#default-aggregationSHOULD moved here from "configuration": A Prometheus Exporter SHOULD support a configuration option to set the MetricReader default
aggregationas a function of instrument kind. - movedrequirementsdk_exporters/prometheus.md#default-aggregationMUST moved here from "configuration": This option MAY be named
default_aggregation, and MUST use the default aggregation by default. - movedrequirementsdk_exporters/prometheus.md#hostSHOULD moved here from "configuration": A Prometheus Exporter SHOULD support a configuration option to set the host that metrics are served on.
- movedrequirementsdk_exporters/prometheus.md#hostMUST moved here from "configuration": The option MAY be named
host, and MUST belocalhostby default. - movedrequirementsdk_exporters/prometheus.md#metric-conversionMUST moved here from "metrics-exporter---prometheus": OpenTelemetry metrics MUST be converted to Prometheus metrics according to the Prometheus Compatibility specification.
- movedrequirementsdk_exporters/prometheus.md#portSHOULD moved here from "configuration": A Prometheus Exporter SHOULD support a configuration option to set the port that metrics are served on.
- movedrequirementsdk_exporters/prometheus.md#portMUST moved here from "configuration": The option MAY be named
port, and MUST be9464by default. - movedrequirementsdk_exporters/prometheus.md#pull-metric-exporterMUST moved here from "metrics-exporter---prometheus": A Prometheus Exporter MUST be a Pull Metric Exporter which responds to HTTP requests with Prometheus metrics in the appropriate format.
- movedrequirementsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesMAY moved here from "configuration": A Prometheus Exporter MAY offer configuration to add resource attributes as metric attributes.
- movedrequirementsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesMUST NOT moved here from "configuration": By default, it MUST NOT add any resource attributes as metric attributes.
- movedrequirementsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesSHOULD moved here from "configuration": The configuration SHOULD allow the user to select which resource attributes to copy (e.g. include / exclude or regular expression based).
- movedrequirementsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesMUST NOT moved here from "configuration": Copied Resource attributes MUST NOT be excluded from the
targetinfo metric. - movedrequirementsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesMAY moved here from "configuration": The option MAY be named
withresourceconstant_labels. - movedrequirementsdk_exporters/prometheus.md#scope-infoMAY moved here from "configuration": A Prometheus Exporter MAY support a configuration option to produce metrics without scope labels.
- movedrequirementsdk_exporters/prometheus.md#scope-infoMUST moved here from "configuration": The option MAY be named
withoutscopeinfo, and MUST befalseby default. - movedrequirementsdk_exporters/prometheus.md#targetMUST moved here from "metrics-exporter---prometheus": There MUST be at most one
targetinfo metric exposed by an SDK Prometheus exporter. - movedrequirementsdk_exporters/prometheus.md#target-infoMAY moved here from "configuration": A Prometheus Exporter MAY support a configuration option to produce metrics without a target info metric.
- movedrequirementsdk_exporters/prometheus.md#target-infoMUST moved here from "configuration": The option MAY be named
withouttargetinfo, and MUST befalseby default. - movedrequirementsdk_exporters/prometheus.md#temporalityMUST moved here from "metrics-exporter---prometheus": A Prometheus Exporter MUST set the MetricReader
temporalityas a function of instrument kind to becumulativefor all instrument kinds. - movedrequirementsdk_exporters/prometheus.md#translation-strategyMAY moved here from "configuration": A Prometheus Exporter MAY support a configuration option that controls the translation of metric names from OpenTelemetry Naming Conventions to Prometheus Naming conventions.
- movedrequirementsdk_exporters/prometheus.md#translation-strategyMUST moved here from "configuration": If the Prometheus exporter supports such configuration it MUST be named to something that resembles Prometheus configuration option
translation_strategy, and the translation options MUST be: - movedrequirementsdk_exporters/prometheus.md#version-and-formatMUST moved here from "metrics-exporter---prometheus": Regardless of whether a Prometheus client library is used, the Prometheus Exporter MUST support version
0.0.4of the Text-based format. - movedrequirementsdk_exporters/prometheus.md#version-and-formatMAY moved here from "metrics-exporter---prometheus": A Prometheus Exporter MAY support Exemplars and Exponential Histograms, which are not currently supported by the Prometheus text format, by supporting other Protocols, but is not required to implemen...
- movedrequirementsdk_exporters/prometheus.md#version-and-formatMUST NOT moved here from "metrics-exporter---prometheus": A Prometheus Exporter for an OpenTelemetry metrics SDK MUST NOT use Prometheus Remote Write format or OpenMetrics protobuf format.
- movedrequirementsdk_exporters/prometheus.md#version-and-formatMUST NOT moved here from "metrics-exporter---prometheus": A Prometheus Exporter for an OpenTelemetry metrics SDK MUST NOT add explicit timestamps on Metric points.
- addedsectioncompatibility/prometheus_and_openmetrics.md#exemplar-conversionNew section "Exemplar Conversion".
- addedsectioncompatibility/prometheus_and_openmetrics.md#timestampsNew section "Timestamps".
- addedsectionconfiguration/supplementary-guidelines.md#strict-yaml-parsingNew section "Strict YAML parsing".
- addedsectioncontext/env-carriers.md#key-name-normalizationNew section "Key Name Normalization".
- addedsectionentities/data-model.md#merging-of-entitiesNew section "Merging of Entities".
- addedsectionlogs/sdk.md#event-to-span-event-bridgeNew section "Event to span event bridge".
- addedsectionsdk_exporters/prometheus.md#client-librariesNew section "Client Libraries".
- addedsectionsdk_exporters/prometheus.md#default-aggregationNew section "Default Aggregation".
- addedsectionsdk_exporters/prometheus.md#hostNew section "Host".
- addedsectionsdk_exporters/prometheus.md#metric-conversionNew section "Metric Conversion".
- addedsectionsdk_exporters/prometheus.md#portNew section "Port".
- addedsectionsdk_exporters/prometheus.md#prometheus-exporter-modelNew section "Prometheus Exporter Model".
- addedsectionsdk_exporters/prometheus.md#pull-metric-exporterNew section "Pull Metric Exporter".
- addedsectionsdk_exporters/prometheus.md#resource-attributes-as-metric-attributesNew section "Resource Attributes as Metric Attributes".
- addedsectionsdk_exporters/prometheus.md#scope-infoNew section "Scope Info".
- addedsectionsdk_exporters/prometheus.md#sdk-metric-outputNew section "SDK Metric Output".
- addedsectionsdk_exporters/prometheus.md#targetNew section "Target".
- addedsectionsdk_exporters/prometheus.md#target-infoNew section "Target Info".
- addedsectionsdk_exporters/prometheus.md#temporalityNew section "Temporality".
- addedsectionsdk_exporters/prometheus.md#translation-strategyNew section "Translation Strategy".
- addedsectionsdk_exporters/prometheus.md#version-and-formatNew section "Version and Format".
- addedsectionspecification/performance.md#trade-off-between-non-blocking-and-memory-consumptionNew section "Trade-off between non-blocking and memory consumption".
- addedsectionresource/data-model.md#example-1-entity-replaces-loose-attributeNew section "Example 1: Entity replaces loose attribute".
- addedsectionresource/data-model.md#example-2-loose-attribute-replaces-entity-attributeNew section "Example 2: Loose attribute replaces entity attribute".
- addedsectionresource/data-model.md#example-3-identity-attribute-conflictsNew section "Example 3: Identity & Attribute Conflicts".
- addedsectionresource/data-model.md#examplesNew section "Examples".
- addedsectionresource/data-model.md#merging-entities-into-a-resourceNew section "Merging Entities into a Resource".
- addedsectionresource/data-model.md#merging-resourcesNew section "Merging Resources".
- addedsectiontrace/tracestate-handling.md#predefined-opentelemetry-sub-keysNew section "Predefined OpenTelemetry sub-keys".
- rewrittensectioncompatibility/opentracing.md#opentracing-compatibility"OpenTracing Compatibility" substantially rewritten (44 to 477 characters).
- rewrittensectioncompatibility/prometheus_and_openmetrics.md#histograms"Histograms" substantially rewritten (755 to 1498 characters).
- rewrittensectioncompatibility/prometheus_and_openmetrics.md#native-histograms"Native Histograms" substantially rewritten (1679 to 5514 characters).
- rewrittensectioncontext/env-carriers.md#propagator-mechanisms"Propagator Mechanisms" substantially rewritten (294 to 966 characters).
- rewrittensectioncontext/env-carriers.md#supplementary-guidelines"Supplementary Guidelines" substantially rewritten (318 to 1404 characters).
- rewrittensectionlogs/data-model.md#references"References" substantially rewritten (313 to 69 characters).
- rewrittensectionsdk_exporters/prometheus.md#configuration"Configuration" substantially rewritten (2591 to 0 characters).
- rewrittensectionsdk_exporters/prometheus.md#metrics-exporter---prometheus"Metrics Exporter - Prometheus" substantially rewritten (2323 to 45 characters).
- rewrittensectionmetrics/sdk.md#forceflush-1"ForceFlush" substantially rewritten (833 to 1125 characters).
- rewrittensectionmetrics/sdk.md#periodic-exporting-metricreader"Periodic exporting MetricReader" substantially rewritten (1428 to 2362 characters).
- rewrittensectionresource/README.md#overview"Overview" substantially rewritten (571 to 1275 characters).