Specificationv1.60.0
since v1.59.06 breaking8 notable17 editorial
From the upstream release notes
- Add Entity support to the Resource SDK specification.
- Add Entity specification.
- Add max request / response size options to list of OTLP exporter configuration options.
- Clarify the interaction between Prometheus content negotiation and translation
- Stabilize sections of Prometheus Metrics Exporter.
- Thread Context: Sharing Thread-Level Information with the OpenTelemetry eBPF Profiler.
Breaking6
Requirements added to, removed from, or restrengthened in a document marked Stable.
- new rulerequirementlogs/sdk.md#emit-a-logrecordMUST added: Enabled: If the
Loggeris not enabled (i.e.LoggerConfig.enabledisfalse), the log record MUST be dropped. - new rulerequirementresource/sdk.md#createMUST added: When both
EntitiesandAttributesare provided in the create method, the system MUST behave as if a Resource is created with justAttributesand then merges with another Resource created with justEntities. - new rulerequirementresource/sdk.md#mergeMUST added: If either resource contains
Entitiesthen merge behavior with Entiites MUST be used, otherwise merge behavior without Entities MUST be used. - new rulerequirementresource/sdk.md#merge-behavior-with-entitiesMUST added: When either Resource contains entities, the merge operation MUST follow the resource data model's merge algorithm.
- new rulerequirementresource/sdk.md#merge-behavior-with-entitiesMUST added: The resulting
SchemaURLMUST match the behavior defined in the merge algorithm. - new rulerequirementresource/sdk.md#retrieve-attributesMUST added: When entities are enabled and present for the Resource, this list MUST include all attributes, including those associated with entities.
Notable8
- rule droppedrequirementsdk_exporters/prometheus.md#interaction-with-translation-strategyMUST removed: The content negotiation requirements MUST take precedence over the configured translation strategy when determining the final output format.
- rule droppedrequirementsdk_exporters/prometheus.md#interaction-with-translation-strategyMUST removed: If configured with
NoTranslationbut the client requestsescaping=underscores, the exporter MUST apply underscore escaping. - new rulerequirementlogs/api.md#enabledSHOULD added: The API documentation SHOULD state that calling
Enabledis optional and is not required before emitting aLogRecord. - new rulerequirementlogs/api.md#enabledSHOULD added: The documentation SHOULD also state that the returned value is not static and can change over time, so a cached value can become stale.
- new rulerequirementsdk_exporters/prometheus.md#interaction-with-translation-strategyMUST added: First,
translation_strategyMUST be applied to construct metric names. - new rulerequirementsdk_exporters/prometheus.md#interaction-with-translation-strategyMUST added: Then, the Prometheus Exporter MUST apply content negotiation, which may include a second translation of metric names using the requested escaping scheme.
- new rulerequirementresource/sdk.md#retrieve-entitiesSHOULD added: The SDK SHOULD provide a way to retrieve the entities associated with a resource.
- new rulerequirementresource/sdk.md#retrieve-unassociated-attributesSHOULD added: The SDK SHOULD provide a way to retrieve attributes which are NOT associated with an entity in the resource.
Editorial17
- rule droppedrequirementlogs/api.md#enabledSHOULD removed: The API SHOULD be documented that instrumentation authors needs to call this API each time they emit a LogRecord to ensure they have the most up-to-date response.
- rewordedrequirementlogs/sdk.md#emit-a-logrecordMUST reworded: Status: Development Before processing a log record, the implementation MUST apply the filtering rules defined by the LoggerConfig:
- rewordedrequirementsdk_exporters/prometheus.md#interaction-with-translation-strategyMUST reworded: Regardless of the configured
translation_strategy, the final output format and character escaping MUST comply with the content negotiation's restrictions based on theAcceptheader. - rewordedrequirementresource/sdk.md#createMUST reworded: The interface MUST provide a way to create a new resource.
- movedrequirementresource/sdk.md#merge-behavior-without-entitiesMUST moved here from "merge": The resulting resource MUST have all attributes that are on any of the two input resources.
- movedrequirementresource/sdk.md#merge-behavior-without-entitiesMUST moved here from "merge": If a key exists on both the old and updating resource, the value of the updating resource MUST be picked (even if the updated value is empty).
- addedsectionresource/sdk.md#merge-behavior-with-entitiesNew section "Merge behavior with entities".
- addedsectionresource/sdk.md#merge-behavior-without-entitiesNew section "Merge behavior without Entities".
- addedsectionresource/sdk.md#retrieve-entitiesNew section "Retrieve entities".
- addedsectionresource/sdk.md#retrieve-unassociated-attributesNew section "Retrieve unassociated attributes".
- rewrittensectionconfiguration/api.md#instrumentation-configuration-api"Instrumentation Configuration API" substantially rewritten (277 to 42 characters).
- rewrittensectionconfiguration/data-model.md#configuration-data-model"Configuration Data Model" substantially rewritten (356 to 43 characters).
- rewrittensectionconfiguration/sdk.md#configuration-sdk"Configuration SDK" substantially rewritten (853 to 76 characters).
- rewrittensectionlogs/api.md#enabled"Enabled" substantially rewritten (1093 to 1506 characters).
- rewrittensectionlogs/data-model-appendix.md#data-model-appendix"Data Model Appendix" substantially rewritten (961 to 294 characters).
- rewrittensectionresource/sdk.md#create"Create" substantially rewritten (546 to 977 characters).
- rewrittensectionresource/sdk.md#merge"Merge" substantially rewritten (1360 to 614 characters).