Skip to content

Commit 68dc08e

Browse files
author
Ignacio Bonafonte
committed
Merge branch 'main' into clarify-experimental-statuses
2 parents 67f19ac + d60fbab commit 68dc08e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+373
-442
lines changed

Examples/Datadog Sample/main.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func simpleSpan() {
7171
func childSpan() {
7272
let span = tracer.spanBuilder(spanName: "parentSpan").setSpanKind(spanKind: .client).startSpan()
7373
span.setAttribute(key: sampleKey, value: sampleValue)
74-
OpenTelemetryContext.setActiveSpan(span)
74+
OpenTelemetry.instance.contextProvider.setActiveSpan(span)
7575
let childSpan = tracer.spanBuilder(spanName: "childSpan").setSpanKind(spanKind: .client).startSpan()
7676
childSpan.setAttribute(key: sampleKey, value: sampleValue)
7777
childSpan.end()

Examples/Logging Tracer/LoggingSpan.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class LoggingSpan: Span {
2222
var context: SpanContext
2323
var isRecording: Bool = true
2424
var status: Status = .unset
25-
var scope: Scope?
2625

2726
public init(name: String, kind: SpanKind) {
2827
self.name = name

Examples/Logging Tracer/LoggingTracer.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ import OpenTelemetryApi
1818

1919
class LoggingTracer: Tracer {
2020
let tracerName = "LoggingTracer"
21-
public var activeSpan: Span? {
22-
return OpenTelemetryContext.activeSpan
23-
}
2421

2522
var binaryFormat: BinaryFormattable = LoggingBinaryFormat()
2623
var textFormat: TextMapPropagator = W3CTraceContextPropagator()
@@ -42,7 +39,7 @@ class LoggingTracer: Tracer {
4239

4340
func startSpan() -> Span {
4441
if spanContext == nil, !isRootSpan {
45-
spanContext = OpenTelemetryContext.activeSpan?.context
42+
spanContext = OpenTelemetry.instance.contextProvider.activeSpan?.context
4643
}
4744
if spanContext != nil {
4845
return LoggingSpan(name: name, kind: .client)

Examples/Logging Tracer/main.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@ OpenTelemetry.registerTracerProvider(tracerProvider: LoggingTracerProvider())
2222

2323
var tracer = OpenTelemetry.instance.tracerProvider.get(instrumentationName: "ConsoleApp", instrumentationVersion: "semver:1.0.0")
2424

25-
let scope = OpenTelemetryContext.setActiveSpan(tracer.spanBuilder(spanName: "Main (span1)").startSpan())
25+
26+
let span1 = tracer.spanBuilder(spanName: "Main (span1)").startSpan()
27+
OpenTelemetry.instance.contextProvider.setActiveSpan(span1)
2628
let semaphore = DispatchSemaphore(value: 0)
2729
DispatchQueue.global().async {
28-
var scope2 = OpenTelemetryContext.setActiveSpan(tracer.spanBuilder(spanName: "Main (span2)").startSpan())
29-
OpenTelemetryContext.activeSpan?.setAttribute(key: "myAttribute", value: "myValue")
30+
let span2 = tracer.spanBuilder(spanName: "Main (span2)").startSpan()
31+
OpenTelemetry.instance.contextProvider.setActiveSpan(span2)
32+
OpenTelemetry.instance.contextProvider.activeSpan?.setAttribute(key: "myAttribute", value: "myValue")
3033
sleep(1)
3134
semaphore.signal()
32-
scope2.close()
35+
span2.end()
3336
}
37+
span1.end()
3438

3539
semaphore.wait()

Examples/Simple Exporter/main.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func simpleSpan() {
3939
func childSpan() {
4040
let span = tracer.spanBuilder(spanName: "parentSpan").setSpanKind(spanKind: .client).startSpan()
4141
span.setAttribute(key: sampleKey, value: sampleValue)
42-
OpenTelemetryContext.setActiveSpan(span)
42+
OpenTelemetry.instance.contextProvider.setActiveSpan(span)
4343
let childSpan = tracer.spanBuilder(spanName: "childSpan").setSpanKind(spanKind: .client).startSpan()
4444
childSpan.setAttribute(key: sampleKey, value: sampleValue)
4545
childSpan.end()

Sources/Importers/OpenTracingShim/Propagation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class Propagation: BaseShimProtocol {
3030
}
3131

3232
public func extractTextFormat(carrier: [String: String]) -> SpanContextShim? {
33-
guard let currentBaggage = OpenTelemetryContext.activeBaggage else { return nil }
33+
guard let currentBaggage = OpenTelemetry.instance.contextProvider.activeBaggage else { return nil }
3434
let context = propagators.textMapPropagator.extract(carrier: carrier, getter: TextMapGetter())
3535
if !(context?.isValid ?? false) {
3636
return nil

Sources/Importers/OpenTracingShim/SpanContextShim.swift

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ import Opentracing
2020
public class SpanContextShim: OTSpanContext, BaseShimProtocol {
2121
var telemetryInfo: TelemetryInfo
2222
public private(set) var context: SpanContext
23-
public private(set) var baggage: Baggage
23+
public private(set) var baggage: Baggage?
2424

25-
init(telemetryInfo: TelemetryInfo, context: SpanContext, baggage: Baggage) {
25+
init(telemetryInfo: TelemetryInfo, context: SpanContext, baggage: Baggage?) {
2626
self.telemetryInfo = telemetryInfo
2727
self.context = context
2828
self.baggage = baggage
@@ -37,21 +37,22 @@ public class SpanContextShim: OTSpanContext, BaseShimProtocol {
3737
}
3838

3939
func newWith(key: String, value: String) -> SpanContextShim {
40-
let baggageBuilder = baggageManager.baggageBuilder().setParent(baggage)
40+
let baggageBuilder = baggageManager.baggageBuilder()
41+
baggageBuilder.setParent(baggage)
4142
baggageBuilder.put(key: EntryKey(name: key)!, value: EntryValue(string: value)!, metadata: nil)
4243

4344
return SpanContextShim(telemetryInfo: telemetryInfo, context: context, baggage: baggageBuilder.build())
4445
}
4546

4647
func getBaggageItem(key: String) -> String? {
4748
guard let key = EntryKey(name: key) else { return nil }
48-
let value = baggage.getEntryValue(key: key)
49+
let value = baggage?.getEntryValue(key: key)
4950
return value?.string
5051
}
5152

5253
public func forEachBaggageItem(_ callback: @escaping (String, String) -> Bool) {
53-
let entries = baggage.getEntries()
54-
entries.forEach {
54+
let entries = baggage?.getEntries()
55+
entries?.forEach {
5556
if !callback($0.key.name, $0.value.string) {
5657
return
5758
}
@@ -61,6 +62,11 @@ public class SpanContextShim: OTSpanContext, BaseShimProtocol {
6162

6263
extension SpanContextShim: Equatable {
6364
public static func == (lhs: SpanContextShim, rhs: SpanContextShim) -> Bool {
64-
return lhs.context == rhs.context && lhs.baggage == rhs.baggage
65+
if let lbaggage = lhs.baggage, let rbaggage = rhs.baggage {
66+
return lbaggage == rbaggage && lhs.context == rhs.context
67+
}
68+
else {
69+
return lhs.baggage == nil && rhs.baggage == nil && lhs.context == rhs.context
70+
}
6571
}
6672
}

Sources/Importers/OpenTracingShim/SpanContextShimTable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public class SpanContextShimTable {
4949
return create(spanShim: spanShim, distContext: spanShim.telemetryInfo.emptyBaggage)
5050
}
5151

52-
@discardableResult public func create(spanShim: SpanShim, distContext: Baggage) -> SpanContextShim {
52+
@discardableResult public func create(spanShim: SpanShim, distContext: Baggage?) -> SpanContextShim {
5353
lock.withWriterLock {
5454
var contextShim = shimsMap[spanShim.span.context]
5555
if contextShim != nil {

Sources/Importers/OpenTracingShim/TelemetryInfo.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct TelemetryInfo {
2020
var tracer: Tracer
2121
var baggageManager: BaggageManager
2222
var propagators: ContextPropagators
23-
var emptyBaggage: Baggage
23+
var emptyBaggage: Baggage?
2424
var spanContextTable: SpanContextShimTable
2525

2626
init(tracer: Tracer, baggageManager: BaggageManager, propagators: ContextPropagators) {

Sources/Importers/OpenTracingShim/TracerShim.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ public class TracerShim: OTTracer, BaseShimProtocol {
7070
}
7171

7272
let span = builder.startSpan()
73-
OpenTelemetryContext.setActiveSpan(span)
73+
OpenTelemetry.instance.contextProvider.setActiveSpan(span)
7474
let spanShim = SpanShim(telemetryInfo: telemetryInfo, span: span)
75-
if baggage != nil, !(baggage! == telemetryInfo.emptyBaggage) {
76-
spanContextTable.create(spanShim: spanShim, distContext: baggage!)
75+
if let baggage = baggage {
76+
spanContextTable.create(spanShim: spanShim, distContext: baggage)
7777
}
7878
return spanShim
7979
}

0 commit comments

Comments
 (0)