Skip to content

Latest commit

 

History

History
1616 lines (1254 loc) · 79.8 KB

CHANGELOG.md

File metadata and controls

1616 lines (1254 loc) · 79.8 KB

Changelog

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.

Unreleased

  • Remove spaces from example exporter User-Agent header to conform to RFC7231 & RFC7230. #3052

Context

Traces

  • Deprecate jaeger exporter, scheduled for spec removal in July 2023. #2858

Metrics

  • Rename built-in ExemplarFilters to AlwaysOn, AlwaysOff and TraceBased. (#2919)
  • Rename exponential bucket histogram aggregation to base 2 exponential histogram aggregation. Rename "OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION" value from "exponential_bucket_histogram" to "base2_exponential_bucket_histogram". Mark exponential histogram data model and base2 exponential histogram aggregation as stable. (#3041)

Logs

Resource

Semantic Conventions

  • Add code.lineno source code attribute (#3029)

Compatibility

  • Add Tracer.Close() to the OpenTracing Shim layer.

OpenTelemetry Protocol

  • Add table for OTLP/HTTP response code and client retry recommendation (#3028)

SDK Configuration

  • Rename knowns values for "OTEL_METRICS_EXEMPLAR_FILTER" to "always_on", "always_off" and "trace_based". (#2919)

Telemetry Schemas

Common

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)
  • Clarify usage of log body for structured logs (#3023)

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> and rpc.response.metadata.<key> to rpc.grpc.request.metadata.<key> and rpc.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)
  • Add ClickHouse to db.system semantic conventions (#3011)

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.

v1.15.0 (2022-11-09)

Context

  • No changes.

Traces

  • Rename http.retry_count to http.resend_count and clarify its meaning. (#2743)
  • BREAKING: rename messaging.consumer_id to messaging.consumer.id, messaging.destination to messaging.destination.name, messaging.temp_destination to messaging.destination.temporary, messaging.destination_kind to messaging.destination.kind, messaging.message_id to messaging.message.id, messaging.protocol to net.app.protocol.name, messaging.protocol_version, net.app.protocol.version, messaging.conversation_id to messaging.message.conversation_id, messaging.message_payload_size_bytes to messaging.message.payload_size_bytes, messaging.message_payload_compressed_size_bytes to messaging.message.payload_compressed_size_bytes, messaging.rabbitmq.routing_key: messaging.rabbitmq.destination.routing_key, messaging.kafka.message_key to messaging.kafka.message.key, messaging.kafka.consumer_group to messaging.kafka.consumer.group, messaging.kafka.partition to messaging.kafka.destination.partition, messaging.kafka.tombstone to messaging.kafka.message.tombstone, messaging.rocketmq.message_type to messaging.rocketmq.message.type, messaging.rocketmq.message_tag to messaging.rocketmq.message.tag, messaging.rocketmq.message_keys to messaging.rocketmq.message.keys; Removed messaging.url; Renamed send operation to publish; Split destination and source namespaces and clarify per-message attributes in batching scenarios. (#2763).

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 to LogRecordProcessor#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)

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)
  • Fix inconsistencies in log README (#2800).

Resource

  • Add browser.mobile and browser.language resource attributes (#2761)

Semantic Conventions

  • Add process.context_switches, and process.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 of http.target for servers, drop http.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.

v1.13.0 (2022-09-19)

Context

  • No changes.

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 on SpanExporter 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 and cloudevents.event_type level from required to recommended (#2618)
  • Change faas.document.time and faas.time level from required to recommended (#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 to net.sock.peer.addr, net.host.ip to net.sock.host.addr, net.peer.name to net.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 metric system.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)

Compatibility

  • No changes.

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)

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 to process.runtime.jvm.memory.limit (#2605).
  • Add semantic conventions for hardware metrics (#2518).

Compatibility

  • No changes.

OpenTelemetry Protocol

  • No changes.

SDK Configuration

  • No changes.

Telemetry Schemas

  • No changes.

Common

  • Move non-otlp.md to common directory (#2587).

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.* to gcp.* 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 moved net.peer.name from common http attributes to just client http attributes. (#2446)
  • Add net.host.name and net.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).

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 having name=* 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 from wcf to dotnet_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

  • Describe how to convert non-string primitives for protocols which only support strings (#2343)
  • Add "Mapping Arbitrary Data to OTLP AnyValue" document. (#2385)

v1.9.0 (2022-02-10)

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 environment variable 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 to localhost. (#2282)
  • Clarified wildcard and predicate support in metrics SDK View API. (#2325)
  • Changed the Exemplar wording, exemplar should be turned off by default. (#2414)

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 to OTEL_EXPORTER_OTLP_TRACES_INSECURE and OTEL_EXPORTER_OTLP_METRIC_INSECURE to OTEL_EXPORTER_OTLP_METRICS_INSECURE so they match the naming of all other OTLP environment variables. (#2240)

SDK Configuration

  • No changes.

Telemetry Schemas

  • No changes.

v1.8.0 (2021-11-12)

Context

  • Add a section for OTel specific values in TraceState. (#1852)
  • Add none as a possible value for OTEL_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

  • Fix Syslog severity number mapping in the example. (#2091)
  • Add log.* attributes. (#2022)

Resource

  • No changes.

Semantic Conventions

  • Add k8s.container.restart_count Resource attribute. (#1945)
  • Add "IBM z/Architecture" (s390x) to host.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)

v1.7.0 (2021-09-30)

Context

  • No changes.

Traces

  • Prefer global user defined limits over model-specific default values. (#1893)
  • Generalize the "message" event to apply to all RPC systems not just gRPC (#1914)

Metrics

Logs

  • No changes.

Resource

  • Exempt Resource from attribute limits. (#1892)

Semantic Conventions

  • 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 and http.host. (#1890)
  • Add HTTP request and response headers semantic conventions. (#1898)

Compatibility

  • No changes.

OpenTelemetry Protocol

  • 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)

SDK Configuration

  • Change default value for OTEL_EXPORTER_JAEGER_AGENT_PORT to 6831. (#1812)
  • See also the changes for OTLP configuration listed under "OpenTelemetry Protocol" above.

v1.6.0 (2021-08-06)

Context

  • No changes.

Traces

  • 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

  • Metrics API specification Feature-freeze. (#1833)
  • Remove MetricProcessor from the SDK spec (for now) (#1840)

Logs

  • No changes.

Resource

  • No changes.

Semantic Conventions

  • 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)

Compatibility

  • No changes.

OpenTelemetry Protocol

  • 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 or https. Reintroduce the insecure configuration option for OTLP/gRPC exporters. (#1729)
  • Adding requirement to implement at least one of two transports: grpc or http/protobuf. (#1790)

SDK Configuration

  • No changes.

v1.5.0 (2021-07-08)

Context

  • No changes.

Traces

  • 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)

Metrics

  • Clarify the limit on the instrument unit. (#1762)

Logs

  • Declare OTLP Logs Beta. (#1741)

Resource

  • No changes.

Semantic Conventions

  • Clean up FaaS semantic conventions, add aws.lambda.invoked_arn. (#1781)
  • Remove rpc.jsonrpc.method, clarify that rpc.method should be used instead. (#1748)

Compatibility

  • No changes.

OpenTelemetry Protocol

  • No changes.

SDK Configuration

  • Allow selecting multiple exporters via OTEL_TRACES_EXPORTER and OTEL_METRICS_EXPORTER by using a comma-separated list. (#1758)

v1.4.0 (2021-06-07)

Context

  • No changes.

Traces

  • 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)

Metrics

Logs

  • No changes.

Resource

  • Add schema_url support to Resource. (#1692)
  • Clarify result of Resource merging and ResourceDetector aggregation in case of error. (#1726)

Semantic Conventions

  • 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).

Compatibility

  • No changes.

OpenTelemetry Protocol

  • No changes.

SDK Configuration

  • Add OTEL_SERVICE_NAME environment variable. (#1677)

v1.3.0 (2021-05-05)

Context

  • No changes.

Traces

  • Get Tracer should use an empty string if the specified name is null. (#1654)
  • Clarify how to record dropped attribute count in non-OTLP formats. (#1662)

Metrics

  • 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)

Logs

  • Clarify "key/value pair list" vs "map" in Log Data Model. (#1604)

Semantic Conventions

  • 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)

Compatibility

  • No changes.

OpenTelemetry Protocol

  • Fix incorrect table of transient errors. (#1642)
  • Clarify that 64 bit integer numbers are decimal strings in OTLP/JSON. (#1637)

SDK Configuration

  • Add OTEL_EXPORTER_JAEGER_TIMEOUT environment variable. (#1612)
  • Add OTEL_EXPORTER_ZIPKIN_TIMEOUT environment variable. (#1636)

v1.2.0 (2021-04-14)

Context

  • Clarify composite TextMapPropagator method required and optional arguments. (#1541)
  • Clarify B3 requirements and configuration. (#1570)

Traces

  • Add ForceFlush to Span 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)

Metrics

  • Adds new metric data model specification (#1512)

Semantic Conventions

  • 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)

Compatibility

  • Add initial OpenTracing compatibility section. (#1101)

v1.1.0 (2021-03-11)

Traces

  • 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's TracerProvider (#1452)

Metrics

  • Add none as a possible value for OTEL_METRICS_EXPORTER to disable export (#1439)

Logs

Semantic Conventions

  • Add elasticsearch to db.system semantic conventions (#1463)
  • Add arch to host semantic conventions (#1483)
  • Add runtime to container semantic conventions (#1482)
  • Rename gcp_gke to gcp_kubernetes_engine to have consistency with other Google products under cloud.infrastructure_service (#1496)
  • http.url MUST NOT contain credentials (#1502)
  • Add aws.eks.cluster.arn to EKS specific semantic conventions (#1484)
  • Rename zone to availability_zone in cloud semantic conventions (#1495)
  • Rename cloud.infrastructure_service to cloud.platform (#1530)
  • Add section describing that libraries and the collector should autogenerate the semantic convention keys. (#1515)

v1.0.1 (2021-02-11)

  • Fix rebase issue for span limit default values (#1429)

v1.0.0 (2021-02-10)

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_* to OTLP_EXPORTER_TRACES_* and OTLP_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: Add java.vm.name (#1242)
  • Refine span name guideline for SQL database spans (#1219)
  • Add RPC semantic conventions for metrics (#1162)
  • Clarify Description usage on Status 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)
  • 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)

v0.7.0 (11-18-2020)

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)
    • API was extended to allow adding arbitrary event attributes (#874)
    • exception.escaped semantic span event attribute was added (#784, #946)
  • 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, allow db.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, split process.command_args from command_line (#1137)
  • Renamed CorrelationContext to Baggage: (#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 with ParentOrElse 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 a Span. SpanContext or even Span 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 set null as undefined behavior (#992)
  • SDK: Rename the Decision values for SamplingResults to DROP, RECORD_ONLY and RECORD_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)

v0.6.0 (2020-07-01)

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)

v0.5.0 (06-02-2020)

  • 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.

v0.4.0 (2020-05-12)

  • 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.

v0.3.0 (2020-02-21)

  • 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.

v0.2.0 (2019-10-22)

  • 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.

v0.1.0 (2019-06-21)

  • Added API proposal for the converged OpenTracing/OpenCensus project is complete.