23 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
API 1.4.1 - 2025-07-31
Fixes
- Various type spec fixes
SDK 1.5.1 - 2025-07-31
Fixes
OTLP Exporter 1.8.1 - 2025-07-31
Fixes
Experimental API 0.5.2 - 2024-11-22
Added
Experimental SDK 0.6.0 - 2024-11-22
Added
- move metrics and logs to separate exporter modules from traces
- make the console metric exporter handle all values
Fixes
- metric exporter: nothing to do for an empty list of metrics
- Hard code semconv values
- removed old unused otel_metric_exporter module
Exporter 1.8.0 - 2024-10-05
Fixes
API 1.4.0 - 2024-10-05
Changes
SDK 1.5.0 - 2024-10-05
Changes
API 1.3.1 - 2024-09-03
Fixes
Experimental API 0.5.1 - 2024-03-18
Added
Experimental SDK 0.5.1 - 2024-03-18
Fixes
API 1.3.0 - 2024-03-15
Changes
- Add
otel_tracestatemodule for creating and updating tracestate - Attributes module
otel_attributesmoved to API - Moved attribute processing functions to
otel_attributesfromotel_span
SDK 1.4.0 - 2024-03-15
Changes
Fixes
- Fix leak of atoms/persistent terms by creating unique processor name in
otel_tracer_server - fix(otel_batch_processor): don't divide
max_queue_sizeby word-size - fix(otel_processor): wait for runner process termination
Exporter 1.7.0 - 2024-03-15
Added
Experimental API 0.5.0 - 2024-03-15
Changes
- Allow to create observable instruments without passing callback arguments
- Allow to give
advisory_paramsto instrument creation functions - Attributes are optional in Counter.add(), UpDownCounter.add() and Histo.record()
- Support explicit_bucket_boundaries advisory parameters
Experimental SDK 0.5.0 - 2024-03-15
Added
- Add
instrument_unitto view criteria - Validate instrument name
- Handle
explicit_bucket_boundariesadvisory parameter - Rename
boundariestoexplicit_bucket_boundariesin histogram explicit aggregation options - Allow creating wildcard views
- Exemplars support
- Metric producers
- Exemplar reservoir support
Changes
- Align histogram default boundaries with specification
- Metrics: fix observable callbacks to return a list of results
- Add a fresh context to each observable callback and test observe exemplars
Fixes
- Correctly record histogram values greater than last boundary
- Readers should use a default cumulative temporality if not specified
- Check for positive data values in counters and histograms
- Fix Delta metric export to only include those recorded in collection cycle
- Cumulative sums fix
- Fix transmitted time units for logs
- don't export unit fields in metrics when the unit is undefined
SDK 1.3.1 - 2023-08-15
Added
Changes
- Resource is now an argument to TracerProvider start, but still set automatically by SDK startup of the global Provider
- Global Tracer no longer set to no-op on SDK shutdown
- Remove use of
deprecatedmodule attribute to support OTP-22
Fixes
API 1.2.2 - 2023-08-15
Changes
Exporter 1.6.0 - 2023-06-21
Changes
Exporter 1.5.0 - 2023-05-19
Fixes
Exporter 1.4.1 - 2023-04-26
Fixes
SDK 1.3.0 - 2023-03-21
Fixes
Exporter 1.4.0 - 2023-02-21
Fixes
API v1.2.1 - 2023-02-21
Fixes
- Have set_status check is_recording in all cases
- Using opentelemetry_semantic_conventions for record_exception
Experimental SDK 0.3.0 - 2023-02-21
Fixes
Experimental API 0.3.0 - 2023-02-21
Fixes
Exporter 1.2.2 - 2022-10-21
Fixes
Experimental API 0.1.0 - 2022-10-19
Added
- Erlang Metrics API
Removed
Experimental SDK 0.1.0 - 2022-10-19
Added
- Metrics SDK
- Logging handler and exporter
- Delta support for explicit histogram
- Logging Handler
- OTLP Metrics exporting
Fixed
API 1.1.1 - 2022-10-19
Fixed
- Gradualizer cleanup of type specs
SDK 1.1.2 - 2022-10-19
Added
Exporter 1.2.1 - 2022-09-08
Fixes
- Gradualizer cleanup
Exporter 1.2.0 - 2022-09-08
Fixes
Added
SDK 1.1.1 - 2022-09-02
Added
Fixes
- Fix dependency on API to require
~> 1.1
Exporter 1.1.1 - 2022-09-02
Fixes
- Fix dependency on API and SDK to require
~> 1.1
Zipkin Exporter 1.1.0 - 2022-09-02
Fixes
- Support
opentelemetry_sdk ~> 1.1exporter API
API 1.1.0 - 2022-8-31
Added
- Span context now set in logger metadata when context is updated in process dictionary
- Instrumentation Scope replaces Instrumentation
Library --
If you were using the record directly, please use the function
opentelemetry:instrumentation_scope/3oropentelemetry:instrumentation_library/3to create aninstrumentation_scoperecord.
SDK 1.1.0 - 2022-8-31
Added
- Instrumentation Scope replaces Instrumentation
Library --
If you were using the record directly, please use the function
opentelemetry:instrumentation_scope/3oropentelemetry:instrumentation_library/3to create aninstrumentation_scoperecord.
Fixed
- Allow custom text propagator to be configured via application env
- No longer grow export table in batch processor if no export table is configured
Exporter 1.1.0 - 2022-8-31
Added
- Instrumentation Scope replaces Instrumentation
Library --
If you were using the record directly, please use the function
opentelemetry:instrumentation_scope/3oropentelemetry:instrumentation_library/3to create aninstrumentation_scoperecord.
Experimental API/SDK
Added
SDK 1.0.5 - 2022-05-20
Fixed
SDK 1.0.4 - 2022-05-13
Fixed
Exporter 1.0.4 - 2022-05-06
1.0.3 - 2022-04-27
[API 1.0.3]
- Doc fixes and improvements to
tracer.exandotel_propagator_text_map.erl
[SDK 1.0.3]
[Exporter 1.0.3]
- Fix use of
otlp_endpointconfiguration from Elixir - Remove the SDK application
opentelemetryfrom the Exporter's runtime dependencies
1.0.2 - 2022-02-22
[API 1.0.2]
Added
[SDK 1.0.2]
Added
Fixed
- Span Status: Ignore status changes that don't follow the define precedence in the spec
[Zipkin Exporter 1.0.0]
Fixed
- Attribute values that are lists are converted to strings in Zipkin tags
- Status converted to Zipkin tags
1.0.1 - 2022-02-03
[API]
Fixed
- W3C Tracestate: Keep last value for duplicate key
- add report_cb to format log messages in composite propagator to have more detailed logs
- Fix use of wrong timestamp format on events
Fixed
[SDK]
[Exporter]
Fixed
1.0.0 - 2022-01-03
[SDK]
Fixed
- SDK will continue to try initializing exporter if it fails to resolve startup ordering issues
- elixir span docs: fix reference to attributes type
[API]
Fixed
[Exporter]
Added
-
New
opentelemetry_exporterapplication environment options:otlp_protocol: The transport protocol, supported values:grpcandhttp_protobuf. Defaults tohttp_protobuf.otlp_traces_protocol: The transport protocol to use for exporting traces, supported values:grpcandhttp_protobuf. Defaults tohttp_protobuf.otlp_compression: Compression type to use, supported values:gzip. Defaults to no compression.otlp_traces_compression: Compression type to use for exporting traces, supported values:gzip. Defaults to no compression.
-
New environment variable options:
OTEL_EXPORTER_OTLP_PROTOCOL: The transport protocol to use, supported values:grpcandhttp_protobuf. Defaults tohttp_protobufOTEL_EXPORTER_OTLP_TRACES_PROTOCOL: The transport protocol to use for exporting traces, supported values:grpcandhttp_protobuf. Defaults tohttp_protobuf.OTEL_EXPORTER_OTLP_COMPRESSION: Compression to use, supported value: gzip. Defaults to no compression.OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: Compression to use when exporting traces, supported value: gzip. Defaults to no compression.
[API 1.0.0-rc.4.1] - 2021-12-28
Fixed
add_eventfunction and macros fixed to accept both a map of attributes or a list.
[API 1.0.0-rc.4] - 2021-12-25
Added
-
Looking up a Tracer for a module is now done by first looking up the OTP Application name and then the Tracer using that name. This means all Tracers share the same "namespace" again which saves space by not duplicating the Tracer record for every module.
-
Configurable limits for the number of Attributes, Events and Links allowed in a Span, an Event or a Link -- defaults to 128. The length of each Attribute's value can also be limited but has a default of infinity.
Environment variables added to configure the limits:
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: Limit on number of Attributes on a Span.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: Limit length of Attribute values.OTEL_SPAN_EVENT_COUNT_LIMIT: Limit number of Events on a Span.OTEL_SPAN_LINK_COUNT_LIMIT: Limit number of Links on a Span.OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT: Limit on number of Attributes on an Event.OTEL_LINK_ATTRIBUTE_COUNT_LIMIT: Limit on number of Attributes on a Link.
-
Support for a Schema URL in a Resource and in the Instrumentation Library information of a Tracer. For more information about Schema URLs see the specification for Resources and getting a Tracer.
-
OTEL_CREATE_APPLICATION_TRACERSis a new environment variable,create_application_tracersis the application environment key, for disabling the automatic creation of Tracers for every Application at boot. The old keys,OTEL_REGISTER_LOADED_APPLICATIONSandregister_loaded_applications, will continue to work as well.
Fixed
- Attribute values now validate against what is allowable per the specification rather than allowing anything the protobuf could encode. This may be breaking to some users who were relying on the incorrect behavior, such as allowing dictionaries or non-homogeneous lists/tuples. The one exception we have kept is continuing to allow atoms in place of binaries for performance.
- Attribute values of type list/tuple must be homogeneous.
- Span start opts are now validated. Previously, opts underwent no validations.
- Event and link attributes are now validated. Previously only span attributes were validated.
- Events accept atoms for the name again.
Removed
- The
sampleroption tostart_spanandwith_spanwas removed. register_tracerhas been removed and nowget_tracerwill cache the Tracer after creation if needed.
[API 1.0.0-rc.3.2] - 2021-10-13
Fixed
otel_propagator_trace_context:extract/1no longer crashes onundefinedheader values
[API 1.0.0-rc.3.1] - 2021-10-12
Fixed
- Properly published the package with Erlang and Elixir source. Package for 1.0.0-rc.3 was retired on Hex.pm
[API 1.0.0-rc.3] - 2021-10-12
Removed
-
Removed
opentelemetry:register_application_tracer. Each application has a Tracer registered for it automatically on boot. This can be disabled by settingopentelemetryenvironment variableregister_loaded_applicationstofalse. -
Named Tracers registered with
opentelemetry:register_tracerare now stored separately from the mapping of Named Tracers created for each application. Meaning if you have a modulemod_ain applicationapp_awith application vsn0.1.0and also manually register a Tracer namedmod_awith version1.1.1then use of macros like?with_spanwill use theapp_aversion0.1.0Named Tracer and manual use of a Named Tracer like:Tracer = opentelemetry:get_tracer(mod_a), otel_tracer:with_span(Tracer, span_name, #{}, fun() -> ... end),will use Named Tracer
mod_awith version1.1.1. In previous versions after registering a Tracer namedmod_ait would override themod_apointing to theapp_aTracer.Additionally, manual registration of a Named Tracer with the name
app_awill not override the application registered Tracer ofapp_a.
Context
Added
- B3 single header format support added
Changed
- Propagators must now be implementations of a propagator type's behaviour. At
this time only the
otel_propagator_text_mapbehaviour exists. Callbacks for inject and extract take an optional "set" and "get" function for working with a carrier. - Configuration of propagators is now a list of atoms representing either the
name of a builtin propagator (at this time those are,
trace_context,b3,b3multiandbaggage) or the name of a module implementing the propagator's behaviour.- Default configuration:
{text_map_propagators, [trace_context, baggage]}
- Default configuration:
- Injectors and extractors can be configured separately instead of using the
same list of propagators for both by configuring
text_map_injectorsandtext_map_extractors.-
For example you may want your service to support receiving
b3multiheaders but have no need for it includingb3multiheaders when it is propagating to other services:{text_map_injectors, [trace_context, baggage]}, {text_map_extractors, [b3multi, trace_context, baggage]}
-
Fixed
b3propagator renamedb3multito properly convey it is the version of the B3 spec that creates multiple headers
[SDK - 1.0.0-rc.3] - 2021-10-12
Fixed
- Memory leak fix: Non-recording Spans are no longer inserted into the ETS table tracking active span.
- Ratio based root span sampling fixed, before it didn't take into account the generated trace id.