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.
Updates:
- Additional Cassandra semantic attributes (#1217)
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)
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.