Releases: open-telemetry/opentelemetry-swift
1.1.0
Package
- Removed duplicated lib products, use non
libprefixed ones. Since 1.0.3 they have been exactly equal. #271 (Breaking)
General
- Provide a way to register the different propagators other than W3C. #261
- Add a Zipkin baggage propagator #264
- Update SemanticAttributes and ResourceAttributes to version 1.7.0 #272 (Breaking)
Traces
- Removed
textFormatmember fromTracerSdk, users of this propagators must use the global registered ones instead:OpenTelemetry.instance.propagators.textMapPropagator#261 (Breaking) SimpleSpanProcessornow exports the spans asynchronously, and synchronises only on shutdown or flush. For production environments BatchSpanProcessor is still preferred. #263- Implement ForceFlush spec on Span processors adding a timeout parameter. #273
Resources
- Fix environment variable for specifying resource attribute as it was not following the spec. Changed to
OTEL_RESOURCE_ATTRIBUTESfromOTEL_RESOURCE_ATTRIBUTES_ENV#255 (Breaking) EnvironmentContextPropagatornow usesTRACEPARENTandTRACESTATEinstead ofOTEL_TRACE_PARENTandOTEL_TRACE_STATEfor compatibility with other tools #255 (Breaking)
URLSession Instrumentation
- Avoid potential interlocking in network instrumentation #263
- Fix concurrent network requests could fail to correctly create spans #270
Zipkin Exporter
1.0.7
1.0.6
Package
- Fix: Xcode 13.0 building for macOS #247
- Update swift-atomics minimum version to 1.0.0 #240
- Remove experimental name from targets based on Metrics
General
- Fix: Resources were not properly updated from environment variables #242
Metrics
- New: Add support for Histogram metrics. Currently only OTLP exporter is supported. #244
Traces
- Added a method to SpanBuilder to start span directly as active. #245
Datadog Exporter
- Allow disabling payload compression
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
macCatalysttarget 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
.staticformat, having the dynamic version distributed by default has been confusing for users. lib... named packages will be deleted in the future.
General
- Add a
willExportCallbacktoBatchSpanProcessor, 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
MetricProcessorSDKwas not cleaning already collected metrics, so were being reported repeatedly #206 - Deprecate
UngroupedBatchermetric processor, it works likeMetricProcessorSDKbut is not concurrently safe #206 - Added
TracerProviderBuilderandMeterProviderBuilder#213
OpenTelemetryProtocol (OTLP) Exporter
- Add aggregationTemporality to OTEL metrics exporter #203
- Created
OtlpConfigurationfor 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
shouldInjectTracingHeadersto not accept modifying the URLRequest, because the callback is called more than once in some situations. Use newly createdinjectCustomHeaderscallback 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_signpostbeginandendcalls 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
OpenTelemetryContextProviderfor 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.activeSpanandOpenTelemetry.instance.contextProvider.setActiveSpan()#131 #160 - Remove binary propagation, as it is not defined in the spec #132
TracerSharedStateis not public anymore, all the functionality can now be set usingTracerProvider#133TracerSDKconstructor is not public anymore, instances should be created only throughTracerProvider.getTracer()#133B3Propagatorconfiguration only affects header injection, it now extracts single or multi formats, with priority to single #134- Create Resources by default with
service.nameand Telemetry attributes #144 - Rename
ResourceConstantstoResourceAttributes#144 SpanBuilderSDKis not public anymore, it didn't add any functionality overSpanBuilder#145- Renamed
TracerSdkProvidertoTracerProviderSdk#146 NoopSpanProcessoris not public anymore #147TracerProviderSdkallows 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.activeBaggageandOpenTelemetry.instance.contextProvider.setActiveBaggage()#131 #160 - Implemented a Jaeger propagator #158
Metrics
- Renamed
MeterSdkProvidertoMeterProviderSdk#146 - Renamed
MetricSdkProcessortoMetricProcessorSdk#146 MeterProviderSdkallows 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
GRPCversion 1.0.0 #113
Traces
Statusis now an enum, with associated description for error #113TraceStatemutating functions should not be used outside the library so are now internal #113- Renamed
TraceConfigtoSpanLimits, and moveSamplertoTracerSharedState#113 - Update
SpanLimitattribute names, and update default values #113 - Added timeout property to
BatchSpanProcessor#113 - Rename
Probabilitysampler toTraceIdRatioBased#113 - allow usage of parent based sampling #113
- Rename
IdsGeneratorprotocol toIdGenerator#113
Metrics
- Refactored Metrics API #108
OpenTelemetryProtocol (OTLP) Exporter
Zipkin Exporter
- Added
additionalHeadersproperty toZipkinExporterOptions#109
Datadog Exporter
- Renamed configuration fields #112