in Sources/apm-agent-ios/Instrumentation/ViewController/TraceLogger.swift [30:66]
func startTrace(tracer: Tracer, associatedObject: AnyObject, name: String, preferredName: String?) -> Span? {
spanLock.lock()
defer {
spanLock.unlock()
}
loadCount+=1
var activeSpan = getActiveSpan()
if activeSpan == nil {
let builder = tracer.spanBuilder(spanName: "\(name)")
.setActive(true)
.setNoParent()
.setSpanKind(spanKind: .client)
let span = builder.startSpan()
os_log("Started trace: %@ - %@ - %@",
log: logger,
type: .debug,
name,
span.context.traceId.description,
span.context.spanId.description)
setActiveSpan(span)
activeSpan = span
}
if let span = activeSpan {
OpenTelemetry.instance.contextProvider.setActiveSpan(span)
}
if let preferredName = preferredName, activeSpan?.name != preferredName {
activeSpan?.name = preferredName
}
return activeSpan
}