Releases: open-telemetry/opentelemetry-specification
Releases · open-telemetry/opentelemetry-specification
Release v1.17.0
v1.17.0 (2023-01-17)
Context
- No changes.
Traces
- Clarify that the BatchSpanProcessor should export batches when the queue reaches the batch size
(#3024) - Deprecate jaeger exporter, scheduled for spec removal in July 2023.
#2858
Metrics
- Rename built-in ExemplarFilters to AlwaysOn, AlwaysOff and TraceBased.
(#2919) - Add
MaxScale
config option to Exponential Bucket Histogram Aggregation.
(#3017) - Rename exponential bucket histogram aggregation to base 2 exponential histogram
aggregation. RenameOTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION
value fromexponential_bucket_histogram
to
base2_exponential_bucket_histogram
.
Mark exponential histogram data model and base2 exponential histogram aggregation as stable.
(#3041)
Logs
- Clarify usage of log body for structured logs
(#3023)
Resource
- No changes.
Semantic Conventions
- Clarify common HTTP attributes apply to both clients and servers
(#3044) - Add
code.lineno
source code attribute
(#3029) - Add ClickHouse to db.system semantic conventions
(#3011) - Refactor messaging attributes and per-message attributes in batching scenarios.
(#2957).
BREAKING: renamemessaging.consumer_id
tomessaging.consumer.id
,
messaging.destination
tomessaging.destination.name
,
messaging.temp_destination
tomessaging.destination.temporary
,
messaging.destination_kind
tomessaging.destination.kind
,
messaging.message_id
tomessaging.message.id
,
messaging.protocol
tonet.app.protocol.name
,
messaging.protocol_version
,net.app.protocol.version
,
messaging.conversation_id
tomessaging.message.conversation_id
,
messaging.message_payload_size_bytes
tomessaging.message.payload_size_bytes
,
messaging.message_payload_compressed_size_bytes
tomessaging.message.payload_compressed_size_bytes
,
messaging.rabbitmq.routing_key
:messaging.rabbitmq.destination.routing_key
,
messaging.kafka.message_key
tomessaging.kafka.message.key
,
messaging.kafka.consumer_group
tomessaging.kafka.consumer.group
,
messaging.kafka.partition
tomessaging.kafka.destination.partition
,
messaging.kafka.tombstone
tomessaging.kafka.message.tombstone
,
messaging.rocketmq.message_type
tomessaging.rocketmq.message.type
,
messaging.rocketmq.message_tag
tomessaging.rocketmq.message.tag
,
messaging.rocketmq.message_keys
tomessaging.rocketmq.message.keys
;
Removedmessaging.url
;
Renamedsend
operation topublish
;
Splitdestination
andsource
namespaces and clarify per-message attributes in batching scenarios.
Compatibility
- Add
Tracer.Close()
to the OpenTracing Shim layer (#3048). - Add OpenCensus migration guide and add BinaryPropagation as an option to gRPC
instrumentation for OpenCensus compatibility
(#3015).
OpenTelemetry Protocol
- Add table for OTLP/HTTP response code and client retry recommendation
(#3028) - Remove spaces from example exporter User-Agent header to conform to RFC7231 & RFC7230.
(#3052)
SDK Configuration
- Rename knowns values for
OTEL_METRICS_EXEMPLAR_FILTER
toalways_on
,
always_off
andtrace_based
.
(#2919)
Telemetry Schemas
- No changes.
Common
- No changes.
New Contributors
- @utezduyar made their first contribution in #3020
- @newly12 made their first contribution in #3028
- @jordigh made their first contribution in #3029
- @v-electrolux made their first contribution in #3011
- @robbkidd made their first contribution in #3052
- @martincostello made their first contribution in #3108
Full Changelog: v1.16.0...v1.17.0
Release v1.16.0
v1.16.0 (2022-12-08)
Context
- No changes.
Traces
- No changes.
Metrics
- Define Experimental MetricProducer as a third-party provider of metric data to MetricReaders.
(#2951) - Add OTLP exporter temporality preference named "LowMemory" which
configures Synchronous Counter and Histogram instruments to use
Delta aggregation temporality, which allows them to shed memory
following a cardinality explosion, thus use less memory.
(#2961)
Logs
- Clarification on what an Event is, and what the event.domain and event.name attributes represent
(#2848) - Move
event.domain
from InstrumentationScope attributes to LogRecord
attributes.
(#2940) - Split out Event API from Log API
(#2941) - Clarify data modification in
LogRecordProcessor
.
(#2969) - Make sure it is very clear we are not building a Logging API.
(#2966)
Resource
- Extend Cloud Platform Enum with OpenShift entry for all supported cloud providers.
(#2985)
Semantic Conventions
- Add
process.runtime.jvm.gc.duration
metric to semantic conventions.
(#2903) - Make http.status_code metric attribute an int.
(#2943) - Add IBM Cloud as a cloud provider.
(#2965) - Add semantic conventions for Feature Flags
(#2529) - Rename
rpc.request.metadata.<key>
andrpc.response.metadata.<key>
to
rpc.grpc.request.metadata.<key>
andrpc.grpc.response.metadata.<key>
(#2981) - List the machine-id as potential source for a unique host.id
(#2978) - Add
messaging.kafka.message.offset
attribute.
(#2982) - Update hardware metrics to use
direction
as per general semantic conventions
(#2942)
Compatibility
- Add OpenCensus metric bridge specification.
(#2979)
OpenTelemetry Protocol
- No changes.
SDK Configuration
- Specify handling of invalid numeric environment variables
(#2963)
Telemetry Schemas
- No changes.
Common
- No changes.
New Contributors
Full Changelog: v1.15.0...v1.16.0
Release v1.15.0
v1.15.0 (2022-11-09)
Context
- No changes.
Traces
- Rename
http.retry_count
tohttp.resend_count
and clarify its meaning.
(#2743)
Metrics
- Handle duplicate description comments during Prometheus conversion.
(#2890) - Allow to configure min/max recording in the exponential histogram aggregation.
(#2904) - Add table of instrument additive property
(#2906)
Logs
- Add
Context
as argument toLogRecordProcessor#onEmit
.
(#2927)
Resource
- No changes.
Semantic Conventions
- Change to messaging.kafka.max.lag from UpDownCounter to Gauge (and rename it)
(#2837) - Add daemon attribute to jvm threads metric
(#2828) - Add gRPC request and response metadata semantic conventions
(#2874) - Add
process.paging.faults
metric to semantic conventions
(#2827) - Define semantic conventions yaml for non-otlp conventions
(#2850) - Add more semantic convetion attributes of Apache RocketMQ
(#2881) - Add
process.runtime.jvm.memory.usage_after_last_gc
metric to semantic conventions.
(#2901)
Compatibility
- Specify how Prometheus exporters and receivers handle instrumentation scope.
(#2703).
OpenTelemetry Protocol
- Clarify that lowerCamelCase field names MUST be used for OTLP/JSON
(#2829)
SDK Configuration
- No changes.
Telemetry Schemas
- No changes.
Common
- Clarify that Scope is defined at build time
(#2878)
New Contributors
- @tuhao1020 made their first contribution in #2828
- @majorgreys made their first contribution in #2875
- @astencel-sumo made their first contribution in #2827
- @samimusallam made their first contribution in #2874
Full Changelog: v1.14.0...v1.15.0
Release v1.14.0
v1.14.0 (2022-10-04)
Context
- No changes.
Traces
- No changes.
Metrics
- Changed the default buckets for Explicit Bucket Histogram to better match the official Prometheus clients.
(#2770). - Fix OpenMetrics valid label keys, and specify prometheus conversion for metric name.
(#2788)
Logs
- Add environment variables for configuring the
BatchLogRecordProcessor
.
(#2785)
Resource
- Add
browser.mobile
andbrowser.language
resource attributes
(#2761)
Semantic Conventions
- Add
process.context_switches
, andprocess.open_file_descriptors
, to the metrics semantic conventions
(#2706) - Add exceptions to the logs semantic conventions
(#2819) - Make context propagation requirements explicit for messaging semantic conventions
(#2750). - Update http metrics to use
http.route
instead ofhttp.target
for servers, drophttp.url
for clients
(#2818).
Compatibility
- No changes.
OpenTelemetry Protocol
- Add user agent to OTLP exporter specification
(#2684) - Prohibit usage of enum value name strings in OTLP/JSON
(#2758) - Clarify that unknown fields must be ignored when receiving OTLP/JSON
(#2816) - Add OTLP exporter user agent to the spec compliance matrix
(#2842).
SDK Configuration
- Add the OTEL_SDK_DISABLED environment variable to the SDK configuration.
(2679) - Add the definition of a Boolean environment variable
(#2755).
Telemetry Schemas
- No changes.
Common
- No changes.
New Contributors
Full Changelog: v1.13.0...v1.14.0
Release v1.13.0
v1.13.0 (2022-09-19)
Traces
- Clarify the return of
Export(batch)
in the Batch Span Processor and exporter concurrency (#2452) - Clarify that Context should not be mutable when setting a span (#2637)
- Clarify that
ForceFlush
is a required method onSpanExporter
interface (#2654)
Metrics
- Add experimental
OTEL_EXPORTER_OTLP_DEFAULT_HISTOGRAM_AGGREGATION
variable for
configuring default histogram aggregation of OTLP metric exporter (#2619) - Clarify async instrument callback identity (#2538)
- Prometheus export: Only monotonic sum are counters (with
_total
) (#2644) - [OM/OTLP] Use
_created
for StartTimeUnixNano and vice-versa (#2645) - Prometheus compatibility: use target_info metric instead of "target" info MF (#2701)
- Add optional Zero Threshold for Exponential Histograms to the metrics data model (#2665)
- Change the inclusivity of exponential histogram bounds (#2633)
- Add
process.threads
host metric semantic convention. (#2705).
Logs
- Update log SDK to allow log processors to mutate log records (#2681).
- Add experimental Events and Logs API specification (#2676)
- Align log SDK and API component naming (#2768).
- Add the signal-specific OTEL_EXPORTER_OTLP_LOGS_* environment variables (#2782).
Resource
- Update the version of the W3C Baggage specification used for
OTEL_RESOURCE_ATTRIBUTES
(#2670)
Semantic Conventions
- Add
net.app.protocol.*
attributes (#2602) - Add network metrics to process semantic conventions (#2556)
- Adopt attribute requirement levels in semantic conventions (#2594)
- Add semantic conventions for GraphQL (#2456)
- Change
cloudevents.event_spec_version
andcloudevents.event_type
level fromrequired
torecommended
(#2618) - Change
faas.document.time
andfaas.time
level fromrequired
torecommended
(#2627) - Add
rpc.grpc.status_code
to RPC metric semantic conventions (#2604) - Add
http.*.*.size
metric semantic conventions for tracking size of requests
/ responses for http servers / clients (#2588) - BREAKING: rename
net.peer.ip
tonet.sock.peer.addr
,net.host.ip
tonet.sock.host.addr
,
net.peer.name
tonet.sock.peer.name
for socket-level instrumentation.
Define socket-level attributes and clarify logical peer and host attributes meaning (#2594) - Add semantic conventions for JVM buffer pool usage (#2650)
- Improve the definition of
state
attribute for metricsystem.network.connections
(#2663) - Add
process.parent_pid
attribute for use in reporting parent process id (PID) (#2691) - Add OpenSearch to db.system semantic conventions (#2718)
- Clarify when "count" is used instead of pluralization (#2613)
- Add the convention 'type' to the YAML definitions for all existing semantic conventions (#2693)
- Remove alternative attribute sets from HTTP semantic conventions (#2469)
OpenTelemetry Protocol
- Add support for partial success in an OTLP export response (#2696)
SDK Configuration
- Mark
OTEL_METRIC_EXPORT_INTERVAL
,OTEL_METRIC_EXPORT_TIMEOUT
environment variables as Stable (#2658)
Telemetry Schemas
- Introduce "split" metric schema transformation (#2653)
Common
- Introduce Instrumentation Scope Attributes (#2579)
- Define Instrumentation Scope Attributes as non identifiers (#2789)
New Contributors
- @laurit made their first contribution in #2456
- @ahayworth made their first contribution in #2642
- @gouthamve made their first contribution in #2644
- @utpilla made their first contribution in #2583
- @breedx-splk made their first contribution in #2659
- @evan-bradley made their first contribution in #2669
- @ppatierno made their first contribution in #2694
- @CleanCut made their first contribution in #2693
- @davidmirza408 made their first contribution in #2691
- @foadnh made their first contribution in #2699
- @lgfa29 made their first contribution in #2670
- @sharp-pixel made their first contribution in #2718
- @pantuza made their first contribution in #2723
- @kovrus made their first contribution in #2745
- @scheler made their first contribution in #2676
Full Changelog: v1.12.0...v1.13.0
Release v1.12.0
v1.12.0 (2022-06-10)
Context
- No changes.
Traces
- No changes.
Metrics
- Clarify that API support for multi-instrument callbacks is permitted.
(#2263). - Clarify SDK behavior when view conflicts are present
(#2462). - Clarify MetricReader.Collect result
(#2495). - Specify optional support for an Exponential Histogram Aggregation.
(#2252) - Update Prometheus Sums for handling delta counter case
(#2570). - Supplementary guidance for metrics additive property
(#2571).
Logs
- OTLP Logs are now Stable
(#2565)
Resource
- No changes.
Semantic Conventions
- Add semantic conventions for JVM CPU metrics
(#2292) - Add details for FaaS conventions for Azure Functions and allow FaaS/Cloud
resources as span attributes on incoming FaaS spans
(#2502) - Define attribute requirement levels
(#2522) - Initial addition of Kafka metrics
(#2485). - Add semantic conventions for Kafka consumer metrics
(#2536) - Add database connection pool metrics semantic conventions
(#2273). - Specify how to obtain a Ruby thread's id
(#2508). - Refactor jvm classes semantic conventions
(#2550). - Add browser.* attributes
(#2353). - Change JVM runtime metric
process.runtime.jvm.memory.max
toprocess.runtime.jvm.memory.limit
- (#2605).
Compatibility
- No changes.
OpenTelemetry Protocol
- No changes.
SDK Configuration
- No changes.
Telemetry Schemas
- No changes.
Common
- Move non-otlp.md to common directory
(#2587).
Release v1.11.0
v1.11.0 (2022-05-04)
Context
- No changes.
Traces
- No changes.
Metrics
- Clarify that API support for multi-instrument callbacks is permitted.
(#2263). - Drop histogram aggregation, default to explicit bucket histogram
(#2429) - Clarify SDK behavior when view conflicts are present
(#2462). - Add support for exemplars on OpenMetrics counters
(#2483) - Clarify MetricReader.Collect result
(#2495). - Add database connection pool metrics semantic conventions
(#2273).
Logs
- Update
com.google.*
togcp.*
in logs data model
(#2514).
Resource
- No changes.
Semantic Conventions
- Note added that
net.peer.name
SHOULD NOT be set if capturing it would require an
extra reverse DNS lookup. And movednet.peer.name
from common http attributes to
just client http attributes.
(#2446) - Add
net.host.name
andnet.host.ip
conventions for rpc server spans.
(#2447) - Allow all metric conventions to be either synchronous or asynchronous.
(#2458 - Update JVM metrics with JMX Gatherer values
(#2478) - Add HTTP/3
(#2507) - Map SunOS to solaris for os.type resource attribute
(#2509)
Compatibility
- No changes.
OpenTelemetry Protocol
- Clarify gRPC insecure option (#2476)
- Specify that OTLP/gRPC clients should retry on
RESOURCE_EXHAUSTED
code only if the server signals backpressure to indicate a possible recovery.
(#2480)
SDK Configuration
- No changes.
Telemetry Schemas
- No changes.
Common
- Define semantic conventions and instrumentation stability.
(#2180) - Loosen requirement for a major version bump
([#2510](https://github.com/open-t
Release v1.10.0
v1.10.0 (2022-04-01)
Context
- No changes.
Traces
- Introduce the concept of Instrumentation Scope to replace/extend Instrumentation
Library. The Tracer is now associated with Instrumentation Scope
(#2276). - Add
OTEL_EXPORTER_JAEGER_PROTOCOL
environment variable to select the protocol
used by the Jaeger exporter.
(#2341) - Add documentation REQUIREMENT for adding attributes at span creation.
(#2383).
Metrics
- Initial Prometheus <-> OTLP datamodel specification
(#2266) - Introduce the concept of Instrumentation Scope to replace/extend Instrumentation
Library. The Meter is now associated with Instrumentation Scope
(#2276). - Specify the behavior of duplicate instrumentation registration in the API, specify
duplicate conflicts in the data model, specify how the SDK is meant to report and
assist the user when these conflicts arise.
(#2317). - Clarify that expectations for user callback behavior are documentation REQUIREMENTs.
(#2361). - Specify how to handle prometheus exemplar timestamp and attributes
(#2376) - Clarify that the periodic metric reader is the default metric reader to be
paired with push metric exporters (OTLP, stdout, in-memory)
(#2379). - Convert OpenMetrics Info and StateSet metrics to non-monotonic sums
(#2380) - Clarify that MetricReader has one-to-one mapping to MeterProvider.
(#2406). - For prometheus metrics without sums, leave the sum unset
(#2413) - Specify default configuration for a periodic metric reader that is associated with
the stdout metric exporter.
(#2415). - Clarify the manner in which aggregation and temporality preferences
are encoded via MetricReader parameters "on the basis of instrument
kind". Rename the environment variable
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE
used to set the
preference to be used when auto-configuring an OTLP Exporter,
defaults to CUMULATIVE, with DELTA an option that makes Counter,
Asynchronous Counter, and Histogram instruments choose Delta
temporality by default.
(#2404). - Clarify that instruments are enabled by default, even when Views are configured.
Require support for the match-all View expression havingname=*
to support
disabling instruments by default.
(#2417). - Mark Metrics SDK spec as Mixed, with most components moving to Stable, while
Exemplar remaining Feature-freeze.
(#2304) - Clarify how metric metadata and type suffixes are handled
(#2440)
Logs
- Add draft logging library SDK specification
(#2328) - Add InstrumentationScope/Logger Name to log data model
(#2359) - Remove
flush
method on LogEmitter
(#2405) - Declare Log Data Model Stable
(#2387)
Resource
- No changes.
Semantic Conventions
- Define span structure for HTTP retries and redirects.
(#2078) - Changed
rpc.system
to an enum (allowing custom values), and changed the
rpc.system
value for .NET WCF fromwcf
todotnet_wcf
.
(#2377) - Define JavaScript runtime semantic conventions.
(#2290) - Add semantic conventions for CloudEvents.
(#1978) - Add
process.cpu.utilization
metric.
(#2436) - Add
rpc.system
value for Apache Dubbo.
(#2453)
Compatibility
- Mark the OpenTracing compatibility section as stable.
(#2327)
OpenTelemetry Protocol
- Add experimental JSON serialization format
(#2235) - Parameters for private key and its chain added
(#2370)
SDK Configuration
- No changes.
Telemetry Schemas
- No changes.
Common
Release v1.9.0
v1.9.0 (2022-02-14)
Context
- No changes.
Traces
- Clarify
StartSpan
returning the parent as a non-recording Span when no SDK is in use
(#2121) - Align Jaeger remote sampler endpoint with OTLP endpoint.
(#2246) - Add JaegerRemoteSampler spec.
(#2222) - Add support for probability sampling in the OpenTelemetry
tracestate
entry and
add optional specification for consistent probability sampling.
(#2047) - Change description and default value of OTEL_EXPORTER_JAEGER_ENDPOINT env var
to point to the correct HTTP port and correct description of OTEL_TRACES_EXPORTER
(#2333).
Metrics
- Rename None aggregation to Drop.
(#2101) - Add details to the Prometheus Exporter requirements.
(#2124) - Consolidate the aggregation/aggregator term.
(#2153) - Remove the concept of supported temporality, keep preferred.
(#2154) - Rename extra dimensions to extra attributes.
(#2162) - Mark In-memory, OTLP and Stdout exporter specs as Stable.
(#2175) - Remove usage of baggage in View from initial SDK specification.
(#2215) - Add to the supplemental guidelines for metric SDK authors text about implementing
attribute-removal Views for asynchronous instruments.
(#2208) - Clarify integer count instrument units.
(#2210) - Use UCUM units in Metrics Semantic Conventions.
(#2199) - Add semantic conventions for process metrics.
#2032 - Changed default Prometheus Exporter host from
0.0.0.0
tolocalhost
.
(#2282) - Clarified wildcard and predicate support in metrics SDK View API.
(#2325)
Logs
- Fix attributes names in Google Cloud Logging mapping.
(#2093) - Add OTEL_LOGS_EXPORTER environment variable.
(#2196) - Added ObservedTimestamp to the Log Data Model.
(#2184) - Change mapping for log_name of Google Cloud Logging.
(#2092) - Drop Log name field
(#2271)
Resource
- No changes.
Semantic Conventions
- Align runtime metric and resource namespaces
(#2112) - Prohibit usage of retired names in semantic conventions.
(#2191) - Add
device.manufacturer
to describe mobile device manufacturers.
(2100) - Change golang namespace to 'go', rather than 'gc'
(#2262) - Add JVM memory runtime semantic
conventions. (#2272) - Add opentracing.ref_type semantic convention.
(#2297)
Compatibility
- Simplify Baggage handling in the OpenTracing Shim layer.
(#2194) - State that ONLY error mapping can happen in the OpenTracing Shim layer.
(#2148) - Define the instrumentation library name for the OpenTracing Shim.
(#2227) - Add a Start Span section to the OpenTracing Shim.
(#2228)
OpenTelemetry Protocol
- Rename
OTEL_EXPORTER_OTLP_SPAN_INSECURE
toOTEL_EXPORTER_OTLP_TRACES_INSECURE
and
OTEL_EXPORTER_OTLP_METRIC_INSECURE
toOTEL_EXPORTER_OTLP_METRICS_INSECURE
so they match the naming of all other OTLP environment variables.
(#2240)
SDK Configuration
- No changes.
Telemetry Schemas
- No changes.
Release v1.8.0
v1.8.0 (2021-11-12)
Context
- Add a section for OTel specific values in TraceState.
(#1852) - Add
none
as a possible value forOTEL_PROPAGATORS
to disable context propagation.
(#2052)
Traces
- No changes.
Metrics
- 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) - Mark Metrics API spec as Stable.
(#2104) - Clarify, fix and expand documentation sections:
(#1966),
(#1981),
(#1995),
(#2002),
(#2010)
Logs
Resource
- No changes.
Semantic Conventions
- Add
k8s.container.restart_count
Resource attribute.
(#1945) - 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
(#1916) - Change meaning and discourage use of
faas.trigger
for FaaS clients (outgoing).
(#1921) - Clarify difference between container.name and k8s.container.name
(#1980)
Compatibility
- No changes.
OpenTelemetry Protocol
- Clarify default for OTLP endpoint should, not must, be https
(#1997) - Specify the behavior of the OTLP endpoint variables for OTLP/HTTP more strictly
(#1975,
#1985) - Make OTLP/HTTP the recommended default transport (#1969)
SDK Configuration
- Unset and empty environment variables are equivalent.
(#2045)
Telemetry Schemas
- Added telemetry schemas documents to the specification (#2008)