Specificationv1.51.0
since v1.50.010 breaking5 notable30 editorial
From the upstream release notes
- AlignedHistogramBucketExemplarReservoir SHOULD use a time-weighted algorithm.
- Document the profiles signal.
- Extend the set of attribute value types to support more complex data structures.
Breaking10
Requirements added to, removed from, or restrengthened in a document marked Stable.
- rule droppedrequirementcommon/README.md#attribute-collectionsMUST NOT removed: The keys in each such collection are unique, i.e. there MUST NOT exist more than one key-value pair with the same key.
- rule droppedrequirementlogs/data-model.md#field-attributesMUST removed: The log attribute model MUST support
anytype, a superset of standard Attribute, to preserve the semantics of structured attributes emitted by the applications. - new rulerequirementcommon/README.md#attributeMUST added: The attribute value MUST be one of types defined in AnyValue.
- new rulerequirementcommon/README.md#attribute-collectionsMUST added: Implementation MUST by default enforce that the exported attribute collections contain only unique keys.
- new rulerequirementcommon/README.md#attribute-collectionsMUST added: If such option is provided, it MUST be documented that for many receivers, handling of maps with duplicate keys is unpredictable and it is the users' responsibility to ensure keys are not duplicate.
- new rulerequirementcommon/README.md#attribute-limitsMUST added: Status: Development - if it is a byte array, if its length exceeds that limit (counting each byte as 1), SDKs MUST truncate that value, so that its length is at most equal to the limit,
- new rulerequirementcommon/README.md#attribute-limitsMUST NOT added: otherwise an attribute MUST NOT be discarded.
- new rulerequirementcommon/README.md#mapstring-anyvalueMUST added: Case sensitivity of keys MUST be preserved.
- new rulerequirementcommon/README.md#mapstring-anyvalueMUST added: The implementation MUST by default enforce that the exported maps contain only unique keys.
- new rulerequirementcommon/README.md#mapstring-anyvalueMUST added: If such option is provided, it MUST be documented that for many receivers, handling of maps with duplicate keys is unpredictable and it is the users' responsibility to ensure keys are not duplicate.
Notable5
- removedsectioncommon/README.md#standard-attributeSection "Standard Attribute" removed.
- new rulerequirementcommon/README.md#anyvalueSHOULD added: APIs SHOULD be documented in a way to communicate to users that using array and map values may carry higher performance overhead compared to primitive values.
- new rulerequirementcommon/README.md#anyvalueSHOULD added: While
nullis a valid attribute value, its use within homogeneous arrays SHOULD generally be avoided unless language constraints make this impossible. - new rulerequirementcommon/README.md#attribute-collectionsMAY added: Implementations MAY have an option to allow exporting attribute collections with duplicate keys (e.g. for better performance).
- new rulerequirementcommon/README.md#mapstring-anyvalueMAY added: The implementation MAY have an option to allow exporting maps with duplicate keys (e.g. for better performance).
Editorial30
- removedsectionprofiles/README.md#profilesSection "Profiles" removed.
- rule droppedrequirementcommon/README.md#attributeSHOULD NOT removed:
nullvalues SHOULD NOT be allowed in arrays. - rule droppedrequirementcommon/README.md#standard-attributeSHOULD removed: The standard attribute definition SHOULD be used to represent attributes in data modeling unless there is a strong justification to diverge.
- rule droppedrequirementlogs/api.md#emit-a-logrecordSHOULD removed: The API SHOULD provide functionality for users to convert Standard Attributes so they can be used, or directly accept them, in the log signal.
- new rulerequirementmetrics/sdk.md#alignedhistogrambucketexemplarreservoirMAY added: Alternatively, the implementation MAY instead keep the last seen measurement that falls within a histogram bucket.
- rewordedrequirementcommon/README.md#attribute-limitsMUST reworded: if adding an attribute to an attribute collection would result in exceeding the limit (counting each attribute in the collection as 1), the SDK MUST discard that attribute, so that the total number o...
- rewordedrequiremententities/data-model.md#entity-data-modelMUST reworded: This field is required and MUST not be empty for valid entities. | | Id | map<string, attribute value> | Attributes that identify the entity.<p>MUST not change during the lifetime of the entity.
- rewordedrequiremententities/data-model.md#entity-data-modelSHOULD reworded: SHOULD follow OpenTelemetry semantic conventions for attributes. | | Description | map<string, attribute value> | Descriptive (non-identifying) attributes of the entity.<p>MAY change over the lifetim...
- rewordedrequiremententities/data-model.md#entity-data-modelSHOULD reworded: SHOULD follow OpenTelemetry semantic conventions for attributes. |
- rewordedrequirementlogs/data-model.md#field-bodyMUST reworded: Body MUST support AnyValue to preserve the semantics of structured logs emitted by the applications.
- rewordedrequirementmetrics/sdk.md#alignedhistogrambucketexemplarreservoirMUST reworded: This implementation MUST store at most one measurement that falls within a histogram bucket, and SHOULD use a uniformly-weighted sampling algorithm based on the number of measurements the bucket has ...
- rewordedrequirementresource/data-model.md#resource-data-modelMUST reworded: | Field | Type | Description | |------------|----------|-----------------| | Entities | set\<Entity\> | Defines the set of Entities associated with this resource.<p>Entity is defined here | | Attribu...
- movedrequirementcommon/README.md#anyvalueMUST NOT moved here from "attribute": A homogeneous array MUST NOT contain values of different types.
- movedrequirementcommon/README.md#anyvalueSHOULD moved here from "attribute": For protocols that do not natively support some of the value types, corresponding values SHOULD be represented as JSON-encoded strings.
- movedrequirementcommon/README.md#anyvalueMUST moved here from "attribute": AnyValues expressing an empty value, a numerical value of zero, an empty string, or an empty array are considered meaningful and MUST be stored and passed on to processors / exporters.
- movedrequirementcommon/README.md#anyvalueMUST moved here from "attribute": However, if it is impossible to make sure that no
nullvalues are accepted (e.g. in languages that do not have appropriate compile-time type checking),nullvalues within arrays MUST be preserved... - movedrequirementcommon/README.md#anyvalueMAY moved here from "attribute": If exporters do not support exporting
nullvalues, they MAY replace those values by 0,false, or empty strings. - addedsectioncommon/README.md#anyvalueNew section "AnyValue".
- addedsectioncommon/README.md#mapstring-anyvalueNew section "map<string, AnyValue>".
- addedsectionspecification/glossary.md#profileNew section "Profile".
- addedsectionspecification/glossary.md#profilesNew section "Profiles".
- addedsectionspecification/glossary.md#profilingNew section "Profiling".
- addeddocumentprofiles/pprof.mdNew document: Pprof (Development).
- addedsectionprofiles/README.md#known-valuesNew section "Known values".
- addedsectionprofiles/README.md#opentelemetry-profilesNew section "OpenTelemetry Profiles".
- addedsectionprofiles/README.md#overviewNew section "Overview".
- rewrittensectioncommon/README.md#attribute"Attribute" substantially rewritten (2327 to 866 characters).
- rewrittensectioncommon/README.md#attribute-collections"Attribute Collections" substantially rewritten (1878 to 2569 characters).
- rewrittensectioncommon/README.md#attribute-limits"Attribute Limits" substantially rewritten (1786 to 2953 characters).
- rewrittensectionmetrics/sdk.md#alignedhistogrambucketexemplarreservoir"AlignedHistogramBucketExemplarReservoir" substantially rewritten (663 to 955 characters).