Skip to content

Releases: open-telemetry/opentelemetry-swift

1.0.5 (beta)

20 Sep 11:45
fdc77fd
Compare
Choose a tag to compare

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)

16 Aug 16:15
90bcf2e
Compare
Choose a tag to compare

URLSessionInstrumentation

  • Fix appleTV linking when using URLSession instrumentation.

1.0.3 (beta)

13 Aug 15:28
13ecada
Compare
Choose a tag to compare

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 to BatchSpanProcessor, 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 like MetricProcessorSDK but is not concurrently safe #206
  • Added TracerProviderBuilder and MeterProviderBuilder #213

OpenTelemetryProtocol (OTLP) Exporter

  • Add aggregationTemporality to OTEL metrics exporter #203
  • Created OtlpConfiguration for OTLP exporters, allowing configuring headers and timeouts. Supports OTEL_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 created injectCustomHeaders 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)

11 Jun 11:24
7cabfc1
Compare
Choose a tag to compare

Metrics

  • Added type Gauge to the types of supported meters #192
  • Fixed time was not being set to Sum data points #192
  • Fixed a retention loop between MetricProviderSdk and PushMetricController #199

Datadog Exporter

  • Add support to US3 Datadog endpoint #197

1.0.1 (beta)

31 May 12:55
3a731ed
Compare
Choose a tag to compare

Swift package

  • Fixed warnings when including in another project #182
  • Allow usage with swift-tools-version 5.2 #189

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 and end calls when spans are started or ended. #185

1.0.0 (beta)

13 May 11:39
9cd9431
Compare
Choose a tag to compare

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 previous Activity.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 and OpenTelemetry.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 using TracerProvider #133
  • TracerSDK constructor is not public anymore, instances should be created only through TracerProvider.getTracer() #133
  • B3Propagator 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 to ResourceAttributes #144
  • SpanBuilderSDK is not public anymore, it didn't add any functionality over SpanBuilder #145
  • Renamed TracerSdkProvider to TracerProviderSdk #146
  • NoopSpanProcessor is not public anymore #147
  • TracerProviderSdk allows configuration in parameters of init(), 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 and OpenTelemetry.instance.contextProvider.setActiveBaggage() #131 #160
  • Implemented a Jaeger propagator #158

Metrics

  • Renamed MeterSdkProvider to MeterProviderSdk#146
  • Renamed MetricSdkProcessor to MetricProcessorSdk #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

09 Mar 08:18
2356f1f
Compare
Choose a tag to compare

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 #113
  • TraceState mutating functions should not be used outside the library so are now internal #113
  • Renamed TraceConfig to SpanLimits, and move Sampler to TracerSharedState #113
  • Update SpanLimit attribute names, and update default values #113
  • Added timeout property to BatchSpanProcessor #113
  • Rename Probability sampler to TraceIdRatioBased #113
  • allow usage of parent based sampling #113
  • Rename IdsGenerator protocol to IdGenerator #113

Metrics

  • Refactored Metrics API #108

OpenTelemetryProtocol (OTLP) Exporter

  • Add support for exporting Metrics #108
  • Update collector exporter to spec 0.7.0 #113

Zipkin Exporter

  • Added additionalHeaders property to ZipkinExporterOptions #109

Datadog Exporter

  • Renamed configuration fields #112

0.5.0

09 Feb 17:27
42da6ae
Compare
Choose a tag to compare

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 and Links are defined as part of SpanData in Sdk #84
  • Remove TimedEvent, since Event 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

  • Add startTimestamp to MetricData #90
  • Fix excessive memory usage in PushMetricController #99

Several changes expected in Metrics for next version

Baggage

  • Renamed CorrelationContext to Baggage 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

11 Dec 19:05
9f2be3e
Compare
Choose a tag to compare

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