Skip to content

Commit 2c434f8

Browse files
author
Ignacio Bonafonte
authored
Merge branch 'main' into resource-extension
2 parents 596cf22 + 26095e3 commit 2c434f8

File tree

57 files changed

+398
-455
lines changed

Some content is hidden

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

57 files changed

+398
-455
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
@@ -42,7 +42,7 @@ func simpleSpan() {
4242
func childSpan() {
4343
let span = tracer.spanBuilder(spanName: "parentSpan").setSpanKind(spanKind: .client).startSpan()
4444
span.setAttribute(key: sampleKey, value: sampleValue)
45-
OpenTelemetryContext.setActiveSpan(span)
45+
OpenTelemetry.instance.contextProvider.setActiveSpan(span)
4646
let childSpan = tracer.spanBuilder(spanName: "childSpan").setSpanKind(spanKind: .client).startSpan()
4747
childSpan.setAttribute(key: sampleKey, value: sampleValue)
4848
childSpan.end()

Package.swift

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@ let package = Package(
1616
.library(name: "libOpenTelemetrySdk", type: .static, targets: ["OpenTelemetrySdk"]),
1717
.library(name: "ResourceExtension", type: .dynamic, targets: ["ResourceExtension"]),
1818
.library(name: "libResourceExtension", type: .static, targets: ["ResourceExtension"]),
19-
.library(name: "OpenTracingShim", type: .dynamic, targets: ["OpenTracingShim"]),
20-
.library(name: "libOpenTracingShim", type: .static, targets: ["OpenTracingShim"]),
21-
.library(name: "SwiftMetricsShim", type: .dynamic, targets: ["SwiftMetricsShim"]),
22-
.library(name: "libSwiftMetricsShim", type: .static, targets: ["SwiftMetricsShim"]),
19+
.library(name: "OpenTracingShim-experimental", type: .dynamic, targets: ["OpenTracingShim"]),
20+
.library(name: "libOpenTracingShim-experimental", type: .static, targets: ["OpenTracingShim"]),
21+
.library(name: "SwiftMetricsShim-experimental", type: .dynamic, targets: ["SwiftMetricsShim"]),
22+
.library(name: "libSwiftMetricsShim-experimental", type: .static, targets: ["SwiftMetricsShim"]),
2323
.library(name: "JaegerExporter", type: .dynamic, targets: ["JaegerExporter"]),
2424
.library(name: "libJaegerExporter", type: .static, targets: ["JaegerExporter"]),
2525
.library(name: "ZipkinExporter", type: .dynamic, targets: ["ZipkinExporter"]),
2626
.library(name: "libZipkinExporter", type: .static, targets: ["ZipkinExporter"]),
2727
.library(name: "StdoutExporter", type: .dynamic, targets: ["StdoutExporter"]),
2828
.library(name: "libStdoutExporter", type: .static, targets: ["StdoutExporter"]),
29-
.library(name: "PrometheusExporter", type: .dynamic, targets: ["PrometheusExporter"]),
30-
.library(name: "libPrometheusExporter", type: .static, targets: ["PrometheusExporter"]),
29+
.library(name: "PrometheusExporter-experimental", type: .dynamic, targets: ["PrometheusExporter"]),
30+
.library(name: "libPrometheusExporter-experimental", type: .static, targets: ["PrometheusExporter"]),
3131
.library(name: "OpenTelemetryProtocolExporter", type: .dynamic, targets: ["OpenTelemetryProtocolExporter"]),
3232
.library(name: "libOpenTelemetryProtocolExporter", type: .static, targets: ["OpenTelemetryProtocolExporter"]),
3333
.library(name: "InMemoryExporter", type: .dynamic, targets: ["InMemoryExporter"]),
@@ -58,11 +58,16 @@ let package = Package(
5858
exclude: ["README.md"]),
5959
.target(name: "OpenTracingShim",
6060
dependencies: ["OpenTelemetrySdk",
61-
"Opentracing"]),
61+
"Opentracing"],
62+
path: "Sources/Importers/OpenTracingShim"
63+
),
6264
.target(name: "SwiftMetricsShim",
6365
dependencies: ["OpenTelemetrySdk",
6466
.product(name: "NIO", package: "swift-nio"),
65-
.product(name: "CoreMetrics", package: "swift-metrics")]),
67+
.product(name: "CoreMetrics", package: "swift-metrics")],
68+
path: "Sources/Importers/SwiftMetricsShim"
69+
70+
),
6671
.target(name: "JaegerExporter",
6772
dependencies: ["OpenTelemetrySdk",
6873
.product(name: "Thrift", package: "Thrift")],
@@ -98,11 +103,13 @@ let package = Package(
98103
.testTarget(name: "OpenTracingShimTests",
99104
dependencies: ["OpenTracingShim",
100105
"OpenTelemetrySdk"],
101-
path: "Tests/OpenTracingShim"),
106+
path: "Tests/ImportersTests/OpenTracingShim"
107+
),
102108
.testTarget(name: "SwiftMetricsShimTests",
103109
dependencies: ["SwiftMetricsShim",
104110
"OpenTelemetrySdk"],
105-
path: "Tests/SwiftMetricsShim"),
111+
path: "Tests/ImportersTests/SwiftMetricsShim"
112+
),
106113
.testTarget(name: "OpenTelemetrySdkTests",
107114
dependencies: ["OpenTelemetryApi",
108115
"OpenTelemetrySdk"],

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,14 @@ or
3232
```
3333

3434
## Current status
35-
**Please note** Tracing spec follows version 1.0.1 and should be considered almost stable now. Metrics support is experimental, and the spec is still under development
36-
37-
Currently Tracing, Metrics and Baggage API's and SDK are implemented, also OpenTracing shims, for compatibility with existing Opentracing code.
35+
<!--Please note:
36+
Tracing spec follows version 1.0.1 and should be considered almost stable now.
37+
Metrics support is experimental, and the spec is still under development.
38+
Semantic Conventions AND OpenTracing shim are also experimental.
39+
Libraries only dependant on these experimental status include the experimental postfix
40+
-->
41+
42+
Currently Tracing, Metrics and Baggage API's and SDK are implemented, also OpenTracing shim, for compatibility with existing Opentracing code.
3843

3944
Implemented traces exporters: Stdout, Jaeger, Zipkin, Datadog and OpenTelemetry collector
4045

Sources/OpenTracingShim/Propagation.swift renamed to 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

0 commit comments

Comments
 (0)