OpenTelemetry - CNCF/opentelemetry-swift: Release 1.0.0

Name: opentelemetry-swift

Owner: OpenTelemetry - CNCF

Release: 1.0.0 (beta)

Released: 2021-05-08

License: Apache-2.0

Release Assets:

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

To top