-
Notifications
You must be signed in to change notification settings - Fork 165
/
Copy pathTracerSdk.swift
28 lines (24 loc) · 983 Bytes
/
TracerSdk.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
import Foundation
import OpenTelemetryApi
/// TracerSdk is SDK implementation of Tracer.
public class TracerSdk: Tracer {
public let instrumentationScopeInfo: InstrumentationScopeInfo
var sharedState: TracerSharedState
init(sharedState: TracerSharedState, instrumentationScopeInfo: InstrumentationScopeInfo) {
self.sharedState = sharedState
self.instrumentationScopeInfo = instrumentationScopeInfo
}
public func spanBuilder(spanName: String) -> SpanBuilder {
if sharedState.hasBeenShutdown {
return DefaultTracer.instance.spanBuilder(spanName: spanName)
}
return SpanBuilderSdk(spanName: spanName,
instrumentationScopeInfo: instrumentationScopeInfo,
tracerSharedState: sharedState,
spanLimits: sharedState.activeSpanLimits)
}
}