Releases: open-telemetry/opentelemetry-swift
1.0.5 (beta)
Package
- Remove some third party dependencies that are now included with the library code #236
General
- Add support for Swift async/await and structured concurrency #230
- Fix support for
macCatalyst
target environment that was broken from two last releases #226
Zipkin exporter
- Fix Zipkin exporter's treatment of status to follow the spec #232
Datadog Exporter
- Updated to intake v2, it support both apiKey and clientToken for traces and logs #227
URLSessionInstrumentation
- Fix creating duplicated spans with iOS < 13 #231
- Delegate calls were not being properly called when running in iOS < 13 #231
- Payload was not being recorded with some code paths #231
- URLRequest are not modified if tracing headers are not injected #231
- Fix a thread race condition #235
OpenTelemetryProtocol (OTLP) Sample
- New sample code that uses the OTLP Exporter to send traces and metrics to otel-collector which is configured to export traces to zipkin and metrics to prometheus respectively. #228
1.0.4 (beta)
URLSessionInstrumentation
- Fix appleTV linking when using URLSession instrumentation.
1.0.3 (beta)
Package
- All package products are changed to be distributed in
.static
format, having the dynamic version distributed by default has been confusing for users. lib... named packages will be deleted in the future.
General
- Add a
willExportCallback
toBatchSpanProcessor
, it will be called just before export action. Allows modifying spans (e.g. saving export timestamp in an attribute) or deleting them before exporting #207 - Fix
MetricProcessorSDK
was not cleaning already collected metrics, so were being reported repeatedly #206 - Deprecate
UngroupedBatcher
metric processor, it works likeMetricProcessorSDK
but is not concurrently safe #206 - Added
TracerProviderBuilder
andMeterProviderBuilder
#213
OpenTelemetryProtocol (OTLP) Exporter
- Add aggregationTemporality to OTEL metrics exporter #203
- Created
OtlpConfiguration
for OTLP exporters, allowing configuring headers and timeouts. SupportsOTEL_EXPORTER_OTLP_HEADERS
#213
URLSessionInstrumentation
- Adds new NetworkStatus instrumentation to iOS network calls #217
- Changed configuration callback
shouldInjectTracingHeaders
to not accept modifying the URLRequest, because the callback is called more than once in some situations. Use newly createdinjectCustomHeaders
callback for modification of the request or headers.
NetworkStatus
- New instrumentation only for iOS, it captures cellular or network status #217
SignPost Integration
- Add support also for iOS and tvOS #216
Prometheus Sample
- Improve documentation on local configuration for Prometheus server #211
1.0.2 (beta)
1.0.1 (beta)
Swift package
General
- Merging logic for Resources was wrong, new values should prevail #187
- Replace copyright header with a much shorter version #188
- Add badge for build and test to the README file #193
OpenTelemetryProtocol (OTLP) Exporter
- Remove the OTLP receiver legacy gRPC port(55680) references #190
Jaeger Exporter
- Fix Jaeger exporter, was broken since 0.5.0 #194
Zipkin Exporter
- Fixed a typo in Zipkin Exporter initializer #180
Datadog Exporter
- Fixed attibutes export format in Logs #181
SignPost Integration
- First release, it automatically produces
os_signpost
begin
andend
calls when spans are started or ended. #185
1.0.0 (beta)
This version is marked as beta based on the OpenTelemetry specification. Current APIs can be considered stable, but not all pieces have gone through rigorous beta testing. Components reportedly in use by external projects include: Tracing, Propagators, Zipkin, OTLP, and Datadog exporters.
Most of the changes have been made in order to better follow the OpenTelemetry specification. Also some Swift specific components have been added like URLSession instrumentation and SwiftMetric support.
Swift package
- Renamed some libraries with the experimental tag to show that spec is still not final in those areas
General
- Automated Semantic Attributes Generation #157
- Added
OpenTelemetryContextProvider
for implementing different context handling approaches in the future, currently only implements previousActivity.framework
(only available in Apple OS's) #160 - Removed Scope class and its functionality #160
Traces
- Added semantic attributes for exceptions #114
- DefaultSpan, and DefaultSpanBuilder were not useful for users and are not public anymore (renamed to PropagatedSpan and PropagatedSpanBuilder) #130
- Active Span functionality moved from Tracer to
OpenTelemetryContextProvider
. Usage:OpenTelemetry.instance.contextProvider.activeSpan
andOpenTelemetry.instance.contextProvider.setActiveSpan()
#131 #160 - Remove binary propagation, as it is not defined in the spec #132
TracerSharedState
is not public anymore, all the functionality can now be set usingTracerProvider
#133TracerSDK
constructor is not public anymore, instances should be created only throughTracerProvider.getTracer()
#133B3Propagator
configuration only affects header injection, it now extracts single or multi formats, with priority to single #134- Create Resources by default with
service.name
and Telemetry attributes #144 - Rename
ResourceConstants
toResourceAttributes
#144 SpanBuilderSDK
is not public anymore, it didn't add any functionality overSpanBuilder
#145- Renamed
TracerSdkProvider
toTracerProviderSdk
#146 NoopSpanProcessor
is not public anymore #147TracerProviderSdk
allows configuration in parameters ofinit()
, and warns when no name is set. #147- Implemented a Jaeger propagator #158
- Added
EnvironmentContextPropagator
, it allows context propagation between parent/child processes #170
Baggage
- Active Baggage functionality is now handled using
OpenTelemetryContextProvider
, e.g.OpenTelemetry.instance.contextProvider.activeBaggage
andOpenTelemetry.instance.contextProvider.setActiveBaggage()
#131 #160 - Implemented a Jaeger propagator #158
Metrics
- Renamed
MeterSdkProvider
toMeterProviderSdk
#146 - Renamed
MetricSdkProcessor
toMetricProcessorSdk
#146 MeterProviderSdk
allows configuration on construction #168- Added support for multiple metric exporters #168
OpenTelemetryProtocol (OTLP) Exporter
- Added OTLP JSON exporter #149
Stdout Exporter
- Add Span events to the output #135
SwiftMetrics Shim
- First release, redirects SwiftMetrics data to OpenTelemetry #155
ResourceExtension
- First release, provides a number of resource generating objects that captures various system related attributes for use with TracerProviders. #165
URLSessionInstrumentation
- First release, it allows automatic capturing of network traffic using URLSession #171
0.6.0
0.6.0 complies with version 1.0.1 of the OpenTelemetry Tracing Spec, and supports OTLP spec 0.7.0.
It also includes the following list of changes:
Swift package
- It depends now on
GRPC
version 1.0.0 #113
Traces
Status
is now an enum, with associated description for error #113TraceState
mutating functions should not be used outside the library so are now internal #113- Renamed
TraceConfig
toSpanLimits
, and moveSampler
toTracerSharedState
#113 - Update
SpanLimit
attribute names, and update default values #113 - Added timeout property to
BatchSpanProcessor
#113 - Rename
Probability
sampler toTraceIdRatioBased
#113 - allow usage of parent based sampling #113
- Rename
IdsGenerator
protocol toIdGenerator
#113
Metrics
- Refactored Metrics API #108
OpenTelemetryProtocol (OTLP) Exporter
Zipkin Exporter
- Added
additionalHeaders
property toZipkinExporterOptions
#109
Datadog Exporter
- Renamed configuration fields #112
0.5.0
0.5.0 includes several code update and fixes:
Swift package
- Use versioned version of
opentracing-objc
library, all dependencies are now versioned #83 - Fix SPM Warnings #88
- Pinned
GRPC
to 1.0.0-alpha.12 #92
General
- Use Date instead of nanoseconds for all logic and api #91
Traces
Events
andLinks
are defined as part ofSpanData
in Sdk #84- Remove
TimedEvent
, sinceEvent
now has the timestamp property always #84 - Reworked status values to:
ok
,error
,unset
#84 - Increased default maximum number of attributes, events and links #84
- Rework Span Status logic following the spec, now
unset
is the default status. #87 - Fixed a thread race condition in
RecordEventsReadableSpan.hasEnded
#96 - Modify
SpanProcessor.onStart()
to receive parent Context #98 - Fix excessive memory usage in
BatchSpanProcessor
#99 - Make
TracerSdkProvider
initializer public #106
Metrics
Several changes expected in Metrics for next version
Baggage
- Renamed
CorrelationContext
toBaggage
and many other baggage updates #94 - Moved all Baggage code and tests from SDK to API #94
- Implemented a Textmap Baggage propagator #94
OpenTelemetryProtocol (OTLP) Exporter
- Update collector exporter to spec 0.6.0 #86
- Fixed groupByResourceAndLibrary return value builder #97
Datadog Exporter
- Add initial support for metrics exporting (#100)
0.4.0
First release of the library
Compatible with opentelemetry-proto 0.4.0
Components implemented (maturity):
- Api and Sdk for Tracing (Beta)
- Api and Sdk for Metrics (Alpha)
- Api and Sdk for Correlation Context (Alpha)
- OpenTracing shims (Beta)
- Traces exporters: OpenTelemetry collector (Alpha), Jaeger ( Alpha), Zipkin (Alpha), Datadog (Beta) and stdout (Beta)
- Metrics exporters: Prometheus ( Alpha)
This is the first version where all the components for an official beta are implemented. Some components are already being actively used by some projects and code in those is more mature.
API is going to be updated soon, and some breaking changes will happen