Please update changelog as part of any significant pull request. Place short description of your change into "Unreleased" section. As part of release process content of "Unreleased" section content will generate release notes for the release.
- Add a section for OTel specific values in TraceState. (#1852)
- Add optional min / max fields to histogram data model. (#1915, #1983)
- Add exponential histogram to the metrics data model. (#1935)
- Add clarifications on how to handle numerical limits. (#2007)
- Add environment variables for Periodic exporting MetricReader. (#2038)
- Specify that the SDK must support exporters to access meter information. (#2040)
- Add clarifications on how to determine aggregation temporality. (#2013, #2032)
- Add "IBM z/Architecture" (
s390x
) tohost.arch
(#2055) - BREAKING: Remove db.cassandra.keyspace and db.hbase.namespace, and clarify db.name (#1973)
- Add AWS App Runner as a cloud platform (#2004)
- Add Tencent Cloud as a cloud provider. (#2006)
- Don't set Span.Status for 4xx http status codes for SERVER spans. (#1998)
- Add attributes for Apache RocketMQ. (#1904)
- Define http tracing attributes provided at span creation time (#1919)
- Change meaning and discourage use of
faas.trigger
for FaaS clients (outgoing). (#1921)
- Specify the behavior of the OTLP endpoint variables for OTLP/HTTP more strictly (#1975, #1985)
- Make OTLP/HTTP the recommended default transport (#1969)
Added telemetry schemas documents to the specification (#2008)
- No changes.
- Prefer global user defined limits over model-sepcific default values. (#1893)
- Generalize the "message" event to apply to all RPC systems not just gRPC (#1914)
- Added Experimental Metrics SDK specification. (#1673, #1730, #1840, #1842, #1864, #1828, #1888, #1912, #1913, #1938, #1958)
- Add FaaS metrics semantic conventions (#1736)
- Update env variable values to match other env variables (#1965)
- No changes.
- Exempt Resource from attribute limits. (#1892)
- BREAKING: Change enum member IDs to lowercase without spaces, not starting with numbers.
Change values of
net.host.connection.subtype
to match. (#1863) - Lambda instrumentations should check if X-Ray parent context is valid (#1867)
- Update YAML definitions for events
(#1843):
- Mark exception as semconv type "event".
- Add YAML definitions for grpc events.
- Add
messaging.consumer_id
to differentiate between message consumers. (#1810) - Clarifications for
http.client_ip
andhttp.host
. (#1890) - Add HTTP request and response headers semantic conventions. (#1898)
- Add
k8s.container.restart_count
Resource attribute. (#1945)
- No changes.
- Add environment variables for configuring the OTLP exporter protocol (
grpc
,http/protobuf
,http/json
) (#1880) - Allow implementations to use their own default for OTLP compression, with
none
denotating no compression (#1923) - Clarify OTLP server components MUST support none/gzip compression (#1955)
- Change OTLP/HTTP port from 4317 to 4318 (#1970)
- Change default value for OTEL_EXPORTER_JAEGER_AGENT_PORT to 6831. (#1812)
- See also the changes for OTLP configuration listed under "OpenTelemetry Protocol" above.
- No changes.
- Add generalized attribute count and attribute value length limits and relevant environment variables. (#1130)
- Adding environment variables for event and link attribute limits. (#1751)
- Adding SDK configuration for Jaeger remote sampler (#1791)
- Metrics API specification Feature-freeze. (#1833)
- Remove MetricProcessor from the SDK spec (for now) (#1840)
- No changes.
- No changes.
- Add mobile-related network state:
net.host.connection.type
,net.host.connection.subtype
&net.host.carrier.*
#1647 - Adding alibaba cloud as a cloud provider. (#1831)
- No changes.
- Allow for OTLP/gRPC exporters to handle endpoint configuration without a scheme while still requiring them to support an endpoint configuration that includes a scheme of
http
orhttps
. Reintroduce the insecure configuration option for OTLP/gRPC exporters. (#1729) - Adding requirement to implement at least one of two transports:
grpc
orhttp/protobuf
. (#1790)
- No changes.
- No changes.
- Adding environment variables for event and link attribute limits. (#1751)
- Clarify some details about span kind and the meanings of the values. (#1738)
- Clarify meaning of the Certificate File option. (#1803)
- Adding environment variables for event and link attribute limits. (#1751)
- Clarify the limit on the instrument unit. (#1762)
- Declare OTLP Logs Beta. (#1741)
- No changes.
- Clean up FaaS semantic conventions, add
aws.lambda.invoked_arn
. (#1781) - Remove
rpc.jsonrpc.method
, clarify thatrpc.method
should be used instead. (#1748)
- No changes.
- No changes.
- Allow selecting multiple exporters via
OTEL_TRACES_EXPORTER
andOTEL_METRICS_EXPORTER
by using a comma-separated list. (#1758)
- No changes.
- Add schema_url support to
Tracer
. (#1666) - Add Dropped Links Count to non-otlp exporters section (#1697)
- Add note about reporting dropped counts for attributes, events, links. (#1699)
- Add schema_url support to
Meter
. (#1666) - Adds detail about when to use
StartTimeUnixNano
and handling of unknown start-time resets. (#1646) - Expand
Gauge
metric description in the data model (#1661) - Expand
Histogram
metric description in the data model (#1664) - Added Experimental Metrics API specification. (#1401, #1557, #1578, #1590, #1594, #1617, #1645, #1657, #1665, #1672, #1674, #1675, #1703, #1704, #1731, #1733)
- Mark relevant portions of Metrics Data Model stable (#1728)
- No changes.
- Add schema_url support to
Resource
. (#1692) - Clarify result of Resource merging and ResourceDetector aggregation in case of error. (#1726)
- Add JSON RPC specific conventions (#1643).
- Add Memcached to Database specific conventions (#1689).
- Add semantic convention attributes for the host device and added OS name and version (#1596).
- Add CockroachDB to Database specific conventions (#1725).
- No changes.
- No changes.
- Add
OTEL_SERVICE_NAME
environment variable. (#1677)
- No changes.
Get Tracer
should use an empty string if the specifiedname
is null. (#1654)- Clarify how to record dropped attribute count in non-OTLP formats. (#1662)
- Expand description of Event Model and Instruments. (#1614)
- Flesh out metric identity and single-write principle. (#1574)
- Expand
Sum
metric description in the data model and delta-to-cumulative handling. (#1618) - Remove the "Func" name, use "Asynchronous" and "Observable". (#1645)
- Add details to UpDownCounter API. (#1665)
- Add details to Histogram API. (#1657)
- Clarify "key/value pair list" vs "map" in Log Data Model. (#1604)
- Fix the inconsistent formatting of semantic convention enums. (#1598)
- Add details for filling resource for AWS Lambda. (#1610)
- Add already specified
messaging.rabbitmq.routing_key
span attribute key to the respective YAML file. (#1651) - Clarify usage of "otel." attribute namespace. (#1640)
- Add possibility to disable
db.statement
via instrumentation configuration. (#1659)
- No changes.
- Fix incorrect table of transient errors. (#1642)
- Clarify that 64 bit integer numbers are decimal strings in OTLP/JSON. (#1637)
- Add
OTEL_EXPORTER_JAEGER_TIMEOUT
environment variable. (#1612) - Add
OTEL_EXPORTER_ZIPKIN_TIMEOUT
environment variable. (#1636)
- Clarify composite
TextMapPropagator
method required and optional arguments. (#1541) - Clarify B3 requirements and configuration. (#1570)
- Add
ForceFlush
toSpan Exporter
interface (#1467) - Clarify the description for the
TraceIdRatioBased
sampler needs to include the sampler's sampling ratio. (#1536) - Define the fallback tracer name for invalid values. (#1534)
- Clarify non-blocking requirement from span API End. (#1555)
- Remove the Included Propagators section from trace API specification that was a duplicate of the Propagators Distribution of the context specification. (#1556)
- Remove the Baggage API propagator notes that conflict with the API Propagators Operations section and fix #1526. (#1575)
- Adds new metric data model specification (#1512)
- Add semantic conventions for AWS SDK operations and DynamoDB (#1422)
- Add details for filling semantic conventions for AWS Lambda (#1442)
- Update semantic conventions to distinguish between int and double (#1550)
- Add semantic convention for AWS ECS task revision (#1581)
- Add initial OpenTracing compatibility section. (#1101)
- Implementations can ignore links with invalid SpanContext(#1492)
- Add
none
as a possible value for OTEL_TRACES_EXPORTER to disable export (#1439) - Add
ForceFlush
to SDK'sTracerProvider
(#1452)
- Add
none
as a possible value for OTEL_METRICS_EXPORTER to disable export (#1439)
- Add
elasticsearch
todb.system
semantic conventions (#1463) - Add
arch
tohost
semantic conventions (#1483) - Add
runtime
tocontainer
semantic conventions (#1482) - Rename
gcp_gke
togcp_kubernetes_engine
to have consistency with other Google products undercloud.infrastructure_service
(#1496) http.url
MUST NOT contain credentials (#1502)- Add
aws.eks.cluster.arn
to EKS specific semantic conventions (#1484) - Rename
zone
toavailability_zone
incloud
semantic conventions (#1495) - Rename
cloud.infrastructure_service
tocloud.platform
(#1530) - Add section describing that libraries and the collector should autogenerate the semantic convention keys. (#1515)
- Fix rebase issue for span limit default values (#1429)
New:
- Add
cloud.infrastructure_service
resource attribute (#1112) - Add
SpanLimits
as a configuration for the TracerProvider(#1416)
Updates:
- Add
http.server.active_requests
to count in-flight HTTP requests (#1378) - Update default limit for span attributes, events, links to 128(#1419)
- Update OT Trace propagator environment variable to match latest name(#1406)
- Remove Metrics SDK specification to avoid confusion, clarify that Metrics API specification is not recommended for client implementation (#1401)
- Rename OTEL_TRACE_SAMPLER and OTEL_TRACE_SAMPLER_ARG env variables to OTEL_TRACES_SAMPLER and OTEL_TRACES_SAMPLER_ARG (#1382)
- Mark some entries in compliance matrix as optional(#1359) SDKs are free to provide support at their discretion.
- Rename signal-specific variables for
OTLP_EXPORTER_*
toOTLP_EXPORTER_TRACES_*
andOTLP_EXPORTER_METRICS_*
(#1362) - Versioning and stability guarantees for OpenTelemetry clients(#1291)
- Additional Cassandra semantic attributes (#1217)
- OTEL_EXPORTER environment variable replaced with OTEL_TRACES_EXPORTER and OTEL_METRICS_EXPORTER which each accept only a single value, not a list. (#1318)
process.runtime.description
resource convention: Addjava.vm.name
(#1242)- Refine span name guideline for SQL database spans (#1219)
- Add RPC semantic conventions for metrics (#1162)
- Clarify
Description
usage onStatus
API (#1257) - Add/Update
Status
+error
mapping for Jaeger & Zipkin Exporters (#1257) - Resource's service.name MUST have a default value, service.instance.id is not
required.
(#1269)
- Clarified in #1294
- Add requirement that the SDK allow custom generation of Trace IDs and Span IDs (#1006)
- Add default ratio when TraceIdRatioSampler is specified by environment variable but no ratio is. (#1322)
- Require schemed endpoints for OTLP exporters (1234)
- Resource SDK: Reverse (suggested) order of Resource.Merge parameters, remove special case for empty strings (#1345)
- Resource attributes: lowerecased the allowed values of the
aws.ecs.launchtype
attribute (#1339) - Trace Exporters: Fix TODOs in Jaeger exporter spec (#1374)
- Clarify that Jaeger/Zipkin exporters must rely on the default Resource to get service.name if none was specified. (#1386)
- Modify OTLP/Zipkin Exporter format variables for 1.0 (allowing further specification post 1.0) (#1358)
- Add
k8s.node
semantic conventions (#1390) - Clarify stability for both OTLP/HTTP and signals in OTLP. (#1400)
New:
- Document service name mapping for Jaeger exporters (1222)
- Change default OTLP port number (#1221)
- Add performance benchmark specification (#748)
- Enforce that the Baggage API must be fully functional, even without an installed SDK. (#1103)
- Rename "Canonical status code" to "Status code" (#1081)
- Add Metadata for Baggage entries, and clarify W3C Baggage Propagator implementation (#1066)
- Change Status to be consistent with Link and Event (#1067)
- Clarify env variables in otlp exporter (#975)
- Add Prometheus exporter environment variables (#1021)
- Default propagators in un-configured API must be no-op (#930)
- Define resource mapping for Jaeger exporters (#891)
- Add resource semantic conventions for operating systems (#693)
- Add semantic convention for source code attributes (#901)
- Add semantic conventions for outgoing Function as a Service (FaaS) invocations (#862)
- Add resource semantic convention for deployment environment (#606)
- Refine semantic conventions for messaging systems and add specific attributes for Kafka (#1027)
- Clarification of the behavior of the Trace API, re: context propagation, in the absence of an installed SDK
- Add API and semantic conventions for recording exceptions as Span Events (#697)
- Allow samplers to modify tracestate (#988)
- Update the header name for otel baggage, and version date (#981)
- Define PropagationOnly Span to simplify active Span logic in Context (#994)
- Add limits to the number of attributes, events, and links in SDK Spans (#942)
- Add Metric SDK specification (partial): covering terminology and Accumulator component (#626)
- Clarify context interaction for trace module (#1063)
- Add
Shutdown
function to*Provider
SDK (#1074) - Add semantic conventions for system metrics (#937)
- Add
db.sql.table
to semantic conventions, allowdb.operation
for SQL (#1141) - Add OTEL_TRACE_SAMPLER env variable definition (#1136)
- Add guidelines for OpenMetrics interoperability (#1154)
- Add OTEL_TRACE_SAMPLER_ARG env variable definition (#1202)
Updates:
- Clarify null SHOULD NOT be allowed even in arrays (#1214)
- Remove ordering SHOULD-requirement for attributes (#1212)
- Make
process.pid
optional, splitprocess.command_args
fromcommand_line
(#1137) - Renamed
CorrelationContext
toBaggage
: (#857) - Add semantic convention for NGINX custom HTTP 499 status code.
- Adapt semantic conventions for the span name of messaging systems (#690)
- Remove lazy Event and Link API from Span interface
(#840)
- SIGs are recommended to remove any existing implementation of the lazy APIs to avoid conflicts/breaking changes in case they will be reintroduced to the spec in future.
- Provide clear definitions for readable and read/write span interfaces in the
SDK
(#669)
- SpanProcessors must provide read/write access at least in OnStart.
- Specify how
Probability
sampler is used withParentOrElse
sampler. - Clarify event timestamp origin and range (#839)
- Clean up api-propagators.md, by extending documentation and removing redundant sections (#577)
- Rename HTTPText propagator to TextMap (#793)
- Rename ParentOrElse sampler to ParentBased and add multiple delegate samplers (#610)
- Rename ProbabilitySampler to TraceIdRatioBasedSampler and add requirements (#611)
- Version attributes no longer have a prefix such as semver: (#873)
- Add semantic conventions for process runtime (#882, #1137)
- Use hex encoding for trace id and span id fields in OTLP JSON encoding: (#911)
- Explicitly specify the SpanContext APIs IsValid and IsRemote as required (#914)
- A full
Context
is the only way to specify a parent of aSpan
.SpanContext
or evenSpan
are not allowed anymore. (#875) - Remove obsolete
http.status_text
from semantic conventions (#972) - Define
null
as an invalid value for attributes and declare attempts to setnull
as undefined behavior (#992) - SDK: Rename the
Decision
values forSamplingResult
s toDROP
,RECORD_ONLY
andRECORD_AND_SAMPLE
for consistency (#938, #956) - Metrics API: Replace "Additive" with "Adding", "Non-Additive" with "Grouping" (#983
- Move active span interaction in the Trace API to a separate class (#923)
- Metrics SDK: Specify LastValue default aggregation for ValueObserver (#984
- Metrics SDK: Specify TBD default aggregation for ValueRecorder (#984
- Trace SDK: Sampler.ShouldSample gets parent Context instead of SpanContext (#881)
- SDK: Specify known values, as well as basic error handling for OTEL_PROPAGATORS. (#962) (#995)
- SDK: Specify when to generate new IDs with sampling (#1225)
- Remove custom header name for Baggage, use official header (#993)
- Trace API: Clarifications for
Span.End
, e.g. IsRecording becomes false after End (#1011) - Update semantic conventions for gRPC for new Span Status (#1156)
New:
- Add span attribute to indicate cold starts of Function as a Service executions (#650)
- Add conventions for naming of exporter packages (#629)
- Add semantic conventions for container id (#673)
- Add semantic conventions for HTTP content length (#641)
- Add semantic conventions for process resource (#635)
- Add peer.service to provide a user-configured name for a remote service (#652)
Updates:
- Improve root Span description (#645)
- Extend semantic conventions for RPC and allow non-gRPC calls (#604)
- Revise and extend semantic conventions for databases (#575)
- Clarify Tracer vs TracerProvider in tracing API and SDK spec.
(#619)
Most importantly:
- Configuration should be stored not per Tracer but in the TracerProvider.
- Active spans are not per Tracer.
- Do not set any value in Context upon failed extraction (#671)
- Clarify semantic conventions around span start and end time (#592)
- Define Log Data Model.
- Remove SpanId from Sampler input.
- Clarify what it will mean for a vendor to "support OpenTelemetry".
- Clarify Tracers should reference an InstrumentationLibrary rather than a Resource.
- Replace ALWAYS_PARENT sampler with a composite ParentOrElse sampler.
- Incorporate old content on metrics calling conventions, label sets.
- Update api-metrics-user.md and api-metrics-meter.md with the latest metrics API.
- Normalize Instrumentation term for instrumentations.
- Change w3c correlation context to custom header.
- OTEP-83 Introduce the notion of InstrumentationLibrary.
- OTEP-88 Metrics API instrument foundation.
- OTEP-91 Logs vocabulary.
- OTEP-92 Logs Vision.
- OTEP-90 Remove LabelSet from the metrics API.
- OTEP-98 Explain the metric instruments.
- OTEP-99 OTLP/HTTP: HTTP Transport Extension for OTLP.
- Define handling of null and empty attribute values.
- Rename Setter.put to Setter.set
- Add glossary for typically misused terms.
- Clarify that resources are immutable.
- Clarify that SpanContext.IsRemote is false on remote children.
- Move specifications into sub-directories per signal.
- Remove references to obsolete
peer.*
attributes. - Span semantic conventions for for messaging systems.
- Span semantic conventions for function as a service.
- Remove the handling of retries from trace exporters.
- Remove Metrics' default keys.
- Add some clarifying language to the semantics of metric instrument naming.
- Allow injectors and extractors to be separate interfaces.
- Add an explanation on why Context Restore operation is needed.
- Document special Zipkin conversion cases.
- OTEP-0059 Add OTLP Trace Data Format specification.
- OTEP-0066 Separate Layer for Context Propagation.
- OTEP-0070 Rename metric instrument "Handles" to "Bound Instruments".
- OTEP-0072 Metric Observer instrument specification (refinement).
- OTEP-0080 Remove the Metric Gauge instrument, recommend use of other instruments.
- Update 0003-measure-metric-type to match current Specification.
- Update 0009-metric-handles to match current Specification.
- Clarify named tracers and meters.
- Remove SamplingHint from the Sampling OTEP (OTEP-0006).
- Remove component attribute.
- Allow non-string Resource label values.
- Allow array values for attributes.
- Add service version to Resource attributes.
- Add general, general identity, network and VM image attribute conventions.
- Add a section on transformation to Zipkin Spans.
- Add a section on SDK default configuration.
- Enhance semantic conventions for HTTP/RPC.
- Provide guidelines for low-cardinality span names.
- SDK Tracer: Replace TracerFactory with TracerProvider.
- Update Resource to be in the SDK.
- OTEP-0001 Added Auto-Instrumentation.
- OTEP-0002: Removed SpanData interface in favor of Span Start and End options.
- OTEP-0003 Consolidatesd pre-aggregated and raw metrics APIs.
- OTEP-0008 Added Metrics Observers API.
- OTEP-0009 Added Metrics Handle API.
- OTEP-0010 Rename "Cumulative" to "Counter" in the Metrics API.
- OTEP-006 Moved sampling from the API tp the SDK.
- OTEP-0007 Moved support for out-of-band telemetry from the API to the SDK.
- OTEP-0016 Added named providers for Tracers and Meters.
- Added design goals and requirements for a telemetry data exchange protocol.
- Added a Span Processor interface for intercepting span start and end invocations.
- Added a Span Exporter interface for processing batches of spans.
- Replaced DistributedContext.GetIterator with GetEntries.
- Added clarifications and adjustments to improve cross-language applicability.
- Added a specification for SDK configuration.
- Added API proposal for the converged OpenTracing/OpenCensus project is complete.